- SCALE es un toolkit de programación GPGPU que permite compilar de forma nativa aplicaciones CUDA para GPUs de AMD
- No es necesario modificar los programas CUDA ni el sistema de compilación, y se está desarrollando soporte para más fabricantes de GPU y para la API de CUDA
¿Cómo funciona?
- SCALE tiene varias innovaciones clave en comparación con otras soluciones GPGPU multiplataforma
- Acepta programas CUDA tal como están. No hace falta portarlos a otro lenguaje. Esto también aplica cuando el programa usa
asm de PTX en línea
- El compilador de SCALE acepta las mismas opciones de línea de comandos y el mismo dialecto de CUDA que
nvcc, por lo que funciona como un reemplazo directo
- "Simula" una instalación de NVIDIA CUDA Toolkit para que las herramientas y scripts de compilación existentes sigan funcionando sin cambios
¿Qué proyectos se han probado?
- SCALE se validó compilando proyectos CUDA de código abierto y ejecutando sus pruebas
- Actualmente, los siguientes proyectos de código abierto están incluidos en las pruebas automáticas nocturnas y las pasan por completo
- NVIDIA Thrust, Blender Cycles, AMGX, llama-cpp, faiss, xgboost, GOMC, stdgpu, hashcat
¿Qué GPUs son compatibles?
- Se admiten los siguientes objetivos de GPU y están incluidos en las pruebas Nightly
- AMD
gfx1030 (Navi 21, RDNA 2.0)
- AMD
gfx1100 (Navi 31, RDNA 3.0)
- Los siguientes objetivos de GPU han pasado pruebas manuales ocasionales y "parecen funcionar"
- Se está trabajando en compatibilidad para las siguientes GPUs
- AMD
gfx900 (Vega 10, GCN 5.0)
- Si necesitas compatibilidad rápida para una arquitectura específica de GPU AMD, ponte en contacto con ellos
Componentes de SCALE
- Un compilador compatible con
nvcc capaz de compilar CUDA en dialecto nvcc para GPUs de AMD, incluyendo PTX asm
- Implementación del runtime de CUDA y de la API del driver para GPUs de AMD
- Bibliotecas wrapper de código abierto que delegan en bibliotecas de ROCm para ofrecer la API "CUDA-X". Bibliotecas como
cuBLAS y cuSOLVER se manejan de esta forma
Diferencias entre SCALE y otras soluciones
- En lugar de ofrecer una nueva forma de escribir software GPGPU, SCALE permite compilar directamente para GPUs de AMD programas escritos en el ampliamente usado lenguaje CUDA
- SCALE apunta a ser totalmente compatible con NVIDIA CUDA. Considera que los usuarios deberían poder dar soporte a varios fabricantes de GPU sin mantener múltiples bases de código ni sacrificar rendimiento
- El lenguaje de SCALE es un superconjunto de NVIDIA CUDA, y ofrece extensiones opcionales del lenguaje que hacen más fácil y eficiente escribir código GPU para quienes quieren ir más allá de
nvcc
- SCALE es un trabajo en progreso. Si falta alguna API que impida su uso, piden que te pongas en contacto para ajustar las prioridades de desarrollo
Resumen de GN⁺
- SCALE es un toolkit importante que permite compilar de forma nativa aplicaciones CUDA para GPUs de AMD
- Poder ejecutar programas CUDA existentes en GPUs de AMD sin necesidad de modificarlos representa una gran ventaja para los desarrolladores
- Al apuntar a una compatibilidad total con NVIDIA CUDA, resulta favorable para dar soporte a múltiples fabricantes de GPU
- Es un proyecto en desarrollo, y si falta alguna API necesaria se puede contactar al equipo para ajustar prioridades
- Un proyecto con funciones similares es ROCm con HIP
1 comentarios
Comentarios en Hacker News
Algunas personas creen que AMD debería soportar una capa de traducción, pero hay quien opina que es una mala idea
Hay quien opina que buscar compatibilidad con bugs es una tontería
Hay quien dice no entender cómo código muy dependiente del hardware podría simplemente "funcionar" en AMD
wgmma, disposiciones óptimas de memoria y registros para tensor cores, instrucciones del acelerador de memoria de tensores, etc.Si es cierto, es impresionante, pero hay quien señala que no es de código abierto y faltan detalles precisos sobre cómo funciona
Hay quien opina que la principal razón de la alta valoración de Nvidia es que AMD no invierte en hacer que sus GPU sean útiles para ML
Hay quien quiere felicitar proyectos como este porque AMD lo ha hecho demasiado mal
Alguien trabajó en Spectral Compute hace unos años
Alguien ha escrito un poco de CUDA
Hay quien opina que este proyecto es excelente
Es bueno que haya una página sobre las limitaciones actuales, pero hay quien comenta que lo que la mayoría describe como "CUDA" es solo una pequeña parte de la funcionalidad real de CUDA
Hay quien opina que podría ser real porque es técnicamente posible