noticias

Empresa de nueva creación NVIDIA: simula CUDA en una tarjeta AMD, compila y ejecuta el programa original directamente

2024-07-16

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

  • Crecy proviene del templo de Aofei.
    Qubits | Cuenta pública QbitAI

¡Sin ninguna modificación o conversión, la tarjeta gráfica AMD puede ejecutar el programa CUDA original!

Una nueva empresa británica ha lanzado una herramienta de compilación de programas CUDA para AMD, que es gratuita para uso comercial.

Una vez que se lanzó la herramienta, generó una acalorada discusión entre los internautas yAlcanzó la cima de la lista caliente de HackerNews



La herramienta se llama SCALE y los desarrolladores la posicionan como un conjunto de herramientas de programación GPGPU (GPU de propósito general).



Actualmente, 9 programas, incluido el marco modelo grande llama-cpp, pasaron la prueba y se están ejecutando normalmente.

A diferencia de otras implementaciones, SCALESimule directamente la instalación del kit de herramientas CUDA, la compilación se puede completar desde el código fuente sin necesidad de convertirla a otros idiomas.

Por lo tanto, SCALE también puede brindar soporte para lenguajes intermedios específicos de NVIDIA, como PTX en línea.

No es necesario realizar la conversión, deja que AMD ejecute CUDA

La introducción del sitio web oficial muestra que SCALE tiene principalmente un compilador nvcc compatible con tres componentes, una implementación AMD de API de controlador y tiempo de ejecución CUDA y una biblioteca ROCm.

El compilador puede compilar directamente programas escritos en lenguajes específicos de CUDA, incluidos nvcc, PTX en línea, etc., en códigos binarios que pueden ejecutarse en GPU AMD.

La biblioteca ROCm se utiliza para proporcionar la API "CUDA-X", y SCALE utiliza este método cuando trabaja con bibliotecas como cuBLAS y cuSOLVER.



La innovación clave de SCALE es queAcepte el programa CUDA tal cual, sin tener que portarlos a otro idioma,Compatible con nvcc y clangy otros métodos de compilación, mientras que las herramientas y scripts de compilación existentes (como cmake) pueden funcionar normalmente.

Según el comunicado oficial, SCALE es totalmente compatible con CUDA, lo que permiteLos desarrolladores no necesitan escribir códigos separados para diferentes plataformas de GPU

Esto es muy diferente del HIP lanzado por AMD, porque HIP reescribe el código CUDA de cierta manera y es posible que no pueda comprender correctamente macros complejas y no admite lenguajes propietarios como PTX en línea.

Incluso el autor de SCALE cree que HIP no puede resolver el problema de compatibilidad con CUDA.

Además, el lenguaje de SCALE es un superconjunto de CUDA, lo que proporciona algunasExtensiones de idioma opcionales, lo que puede hacer que sea más fácil y eficiente para los desarrolladores que desean deshacerse de nvcc escribir código de GPU.

El autor expresó la esperanza de que en el futuro los desarrolladores puedan escribir código una vez y ejecutarlo en diferentes plataformas de hardware, y está trabajando para cerrar la brecha de compatibilidad entre el popular lenguaje de programación CUDA y otros proveedores de hardware.

Actualmente, el soporte de SCALE para varias series de GPU AMD es el siguiente:

  • Ya soportados: gfx1030 (serie RX6000) y gfx1100 (serie RX7000)
  • "parece funcionar": gfx1010 (serie RX5000) y gfx1101
  • Adaptación: gfx900 (serie RX Vega)

Además, el autor probó algunos proyectos de código abierto CUDA y ejecutó con éxito 9 aplicaciones CUDA usando SCALE.



Sin embargo, después de todo, SCALE es un proyecto completamente nuevo, por lo que el autor también ha preparado una serie de tutoriales desde la instalación hasta la compilación, que ofrecen diferentes tipos de programas de muestra.

Los pasos clave del tutorial van acompañados de códigos relevantes e incluso incluyen cómo determinar el modelo de su propia GPU, que se puede decir que es muy detallado.



Si encuentra problemas durante el uso, el autor también presenta métodos comunes de solución de problemas y también abre un foro de Discord para comunicarse directamente con el equipo de desarrollo.



La startup que creó SCALE se llamaComputación espectral, fundada en el Reino Unido en 2018, afirma tener un conocimiento profundo de la arquitectura de CPU y GPU, y su objetivo es ayudar a los desarrolladores a utilizar de manera eficiente los recursos informáticos.



Internauta: ¿Desafiar el foso de Nvidia?

Algunos internautas creen que si SCALE realmente puede tener el efecto (como se anuncia), desafiará el foso de NVIDIA y permitirá a AMD competir directamente con ella.



Sin embargo, es demasiado pronto para sacar una conclusión. Después de todo, los funcionarios de SCALE también admiten que todavía existen algunos defectos en comparación con el CUDA original.

Y el desarrollador también dejó en claro que algunas API y funciones de CUDA no son compatibles, pero no proporcionó una lista específica.



Con respecto a más deficiencias de la "solución AMD", un internauta que afirmó haberse comunicado con el equipo de SCALE dijo que el SCALE actual no puede operar TensorCore, lo que significa que el marco de aceleración FlashAttention no se puede ejecutar en AMD.

Además, dado que la tarjeta N tiene una potente unidad de multiplicación de matriz, incluso si se puede compilar y ejecutar, el rendimiento de la tarjeta AMD puede no ser tan bueno como el de la tarjeta N.



Algunos internautas creen que la razón por la que Nvidia es dominante es que AMD no está dispuesta a invertir en hacer que su GPU tenga un mayor rendimiento de aprendizaje automático (no solo la ventaja de CUDA).



Incluso si funcionan de manera eficiente, también existe la pregunta de si las tarjetas AMD son realmente asequibles y accesibles.



Otra ola de internautas cree que el mayor problema no es si puede funcionar técnicamente, sino las cuestiones legales detrás de ello.

Esta cuestión también ha provocado un amplio debate, pero aún no se ha llegado a una conclusión.

Algunas personas piensan que SCALE es tan cuestionable desde el punto de vista legal como ZLUDA (otra forma de ejecutar programas CUDA en AMD) y puede dar lugar a demandas por parte de NVIDIA.



Específicamente, según los términos del EULA de NVIDIA, el SDK CUDA solo permite el desarrollo de aplicaciones que se ejecutan en tarjetas N, lo que puede prohibir implementaciones compatibles como SCALE.



Pero inmediatamente algunos internautas dijeron que SCALE no usaba el "SDK" de NVIDIA, entonces, ¿por qué hablar del acuerdo de uso del SDK?



En definitiva, ya sea por una deficiencia técnica o por una cuestión legal, el debate sobre esta nueva herramienta aún está en curso.

En cuanto a si es útil o no, depende de los desarrolladores votar con sus pies.

Enlaces de referencia:
[1]https://docs.scale-lang.com/
[2]https://news.ycombinator.com/item?id=40970560