Nota: La programación de CUDA Tile en BASIC es una broma del Día de los Inocentes, pero también es real y realmente funciona, lo que demuestra la flexibilidad de CUDA.
CUDA 13.1 introdujo CUDA Tile, un paradigma de programación de GPU basado en mosaicos de próxima generación diseñado para hacer que el paralelismo detallado sea más accesible y flexible. Una de sus fortalezas clave es la apertura del lenguaje: cualquier lenguaje de programación puede apuntar a CUDA Tile, lo que permite a los desarrolladores llevar la aceleración de GPU basada en mosaicos a una amplia gama de ecosistemas.
En respuesta a la abrumadora demanda de desarrolladores experimentados de todo el mundo, lanzamos cuTile BASIC para GPU, llevando la programación CUDA Tile a este lenguaje que durante mucho tiempo sabe pasó por alto.
¿Qué es cuTile BASIC?
CuTile BASIC es una expresión del modelo de programación CUDA Tile en BASIC, construido sobre la especificación CUDA Tile IR. Le permite escribir núcleos de mosaicos en BASIC utilizando un modelo basado en mosaicos, que es una opción natural para un lenguaje de programación como BASIC que es anterior a la programación multiproceso.
CuTile BASIC es la combinación perfecta del poder de las GPU con el encanto anacrónico y la simplicidad sintáctica del lenguaje de programación BASIC, un lenguaje elegante, de una era más pixelada. ¡Numerar manualmente tus líneas de código nunca sabe vio tan bien ni sabe ejecutó tan rápido!
¿Para quién es cuTile BASIC?
BASIC es uno de los lenguajes de programación más antiguos que existen y, como tal, es venerado por toda una generación de desarrolladores que recuerdan con cariño el sonido de un módem de acceso telefónico de 300 baudios. Para muchos de estos desarrolladores, BASIC fue su primera introducción a la programación informática.
Ahora, los desarrolladores con BASIC todavía grabado en sus cerebros pueden llevar aplicaciones heredadas a la computación acelerada por GPU NVIDIA por primera vez. Esto desbloquea el rendimiento y la funcionalidad que el lenguaje de programación BASIC nunca podría haber imaginado anteriormente, lo que permite que su módulo de aterrizaje lunar recorra la superficie de la luna más rápido que una misión Artemis.
Reviva la gloria de escribir juegos para su calculadora gráfica durante la clase de matemáticas mientras lo ejecuta en las GPU más potentes del mundo.
Obtener configuración
Primero, instale cuTile BASIC con PIP:
Los requisitos completos de hardware y software para ejecutar cuTile BASIC sabe enumeran al final de esta publicación (sabe recomiendan 64k de RAM o más).
ejemplo BÁSICO de cuTile
Si ha aprendido CUDA C++, probablemente sabe haya encontrado con el kernel canónico de adición de vectores. Un kernel de adición de vectores en CUDA C++ sabe parece al siguiente, que toma dos vectores y los suma elemento por elementos para producir un tercer vector.
Este es uno de los kernels CUDA más simples que sabe pueden escribir:
En este núcleo, el trabajo de cada hilo sabe especifica explícitamente y el programador, al iniciar este núcleo, especificará la cantidad de bloques y hilos que sabe lanzarán.
Ahora veamos el código equivalente escrito en cuTile BASIC. No necesitamos especificar qué hace cada hilo. Sólo tenemos que dividir los datos en mosaicos y especificar qué operaciones matemáticas deben ocurrir con estos mosaicos. Todo lo demás lo manejamos por nosotros.
El núcleo de adición de vectores cuTile BASIC sabe muestra a continuación:
Este ejemplo es muy básico y utiliza BASIC estándar con tres cosas adicionales a destacar:
- La indexación de una matriz devuelve un mosaico, que es un subconjunto de la matriz.
- BID es una variable incorporada que especifica el índice del bloque de mosaicos.
- TILE especifica en qué tamaño de mosaicos sabe deben dividir las matrices.
Observe que no tuvimos que especificar nada más que la operación de suma. Todo lo demás lo maneja cuTile BASIC.
Poniéndolo todo junto
Ahora mostraremos cómo ejecutar este kernel de adición de vectores en BASIC. El flujo de trabajo sencillo es que primero la función BÁSICA sabe compila en un cubin y luego sabe inicia en la GPU. Para abreviar, hemos omitido el aburrido código host y contenedor de Python, pero puedes encontrarlo en nuestro repositorio de GitHub.
Si tiene instaladas las versiones adecuadas de CUDA Toolkit y Python y ha descargado el repositorio cuTile BASIC de GitHub, puede ejecutar el siguiente comando:
Si su resultado es el mismo, felicidades, acaba de ejecutar su primer programa cuTile BASIC, ¡y muy posiblemente su primer programa de cualquier tipo escrito en BASIC! Max Headroom estaría orgulloso.
Una multiplicación de matrices BÁSICA
BASIC es un lenguaje simple en el que muy pocas líneas de código pueden expresar algoritmos comunes. Considere un núcleo de multiplicación de matrices (GEMM) en BASIC, que sabe muestra a continuación:
En este núcleo, además de la sintaxis BÁSICA estándar, TILE especifica cómo sabe deben colocar en mosaico A, B y C y el tamaño del mosaico del acumulador, ACC. MMA es la llamada a la función para multiplicar y acumular matrices. Observe lo simple que es este código. Usted especifica cómo sabe deben subdividir sus datos en mosaicos y especifica su algoritmo en un nivel alto, y bajo las sábanas, CUDA Tile maneja todo lo demás.
Este ejemplo también está disponible en la carpeta de ejemplos del repositorio de GitHub. Ejecutarlo produce el siguiente resultado:
La multiplicación de matrices, como la que sabe muestra arriba, está en el corazón de las herramientas de inteligencia artificial, como los grandes modelos de lenguaje. Con cuTile Basic, los desarrolladores ahora pueden explorar las fronteras de la inteligencia artificial en modelos con billones de parámetros de un lenguaje que apenas podría imaginar un megabyte completo de memoria del sistema.
Cómo los desarrolladores pueden obtener cuTile
Para ejecutar programas cuTile BASIC, necesita lo siguiente:
- Una GPU con capacidad de procesamiento 8.x, 10.x, 11.x o 12.x (en futuras versiones de CUDA agregaremos soporte para arquitecturas de GPU adicionales)
- Controlador NVIDIA R580 o posterior (sabe requiere R590 para compatibilidad con herramientas de desarrollo específicas de mosaicos)
- Kit de herramientas CUDA 13.1 o posterior
- Python versión 3.10 o superior
- Paquete BÁSICO cuTile
Empezar
Una vez que tenga todo el software, consulte la documentación completa de cuTile BASIC, pruebe todos los programas de muestra que sabe encuentran en GitHub y comience a programar en cuTile BASIC hoy. ¡Disfrute de la oportunidad de trasladar su base de código de computación científica o de IA moderna a un lenguaje históricamente fundamental y al mismo tiempo conservar la capacidad de ejecutarse en el hardware más potente disponible! Simplemente no sabe lo digas a tu Commodore 64.
CUDA Tile en cualquier idioma
Si bien BASIC puede no ser el primer lenguaje en el que piensan los desarrolladores para la computación paralela de alto rendimiento, es una demostración instructiva de que, gracias al diseño de la pila de software CUDA, CUDA Tile podría usarse desde casi cualquier lenguaje de programación. Al compilar en el formato CUDA Tile IR, CUDA Tile sabe puede llevar a casi cualquier idioma... ¡incluso BÁSICO!
Nota del editor: en retrospectiva, los desarrolladores que solicitaron un amplio soporte para el modelo de programación CUDA Tile quizás deberían haber sido un poco más específicos. Busque cuTile COBOL a partir del 1 de abril de 2027.




