Programación CUDA en Julia
El paquete Cuda.jl es la principal interfaz de programación para trabajar con las GPU NVIDIA CUDA usando Julia. Cuenta con una abstracción de matriz fácil de usar, un compilador para escribir núcleos CUDA en Julia y envoltorios para varias bibliotecas CUDA.
Antes de todo, asegúrese de tener un controlador NVIDIA reciente. En Windows, también asegúrese de tener instalado el Visual C ++ Redistributable. No necesita instalar el kit de herramientas CUDA.
CUDA.JL se puede instalar con Julia Package Manager. Desde el Julia Repl, escriba ]
para ingresar al modo PKG REPL y ejecutar:
pkg> add CUDA
O, de manera equivalente, a través de la API Pkg
:
julia> import pkg; PKG.Add ("CUDA")
Para una descripción general de la cadena de herramientas CUDA en uso, puede ejecutar el siguiente comando después de importar el paquete:
Julia> usando CUDA Julia> Cuda.versionInfo ()
Esto puede llevar un tiempo, ya que precompilará el paquete y descargará una versión adecuada del kit de herramientas CUDA. Si su GPU no es completamente compatible, el comando anterior (o cualquier otro comando que inicialice el kit de herramientas) emitirá una advertencia.
Para obtener más instrucciones de uso y otra información, consulte la documentación.
La última versión de desarrollo de Cuda.jl requiere Julia 1.10 o superior. Si está utilizando una versión anterior de Julia, debe usar una versión anterior de Cuda.JL. Esto sucederá automáticamente cuando instale el paquete usando el Administrador de paquetes de Julia.
Tenga en cuenta que Cuda.jl puede no funcionar con una construcción personalizada de Julia; Se recomienda que instale a Julia utilizando los binarios oficiales o Juliaup.
La última versión de Cuda.jl también tiene ciertos requisitos que el Administrador de paquetes no puede hacer cumplir:
Plataforma de host: solo se admiten Linux y Windows de 64 bits;
Hardware del dispositivo: solo se admiten GPU NVIDIA con capacidad de cálculo 3.5 (Kepler) o superior;
Conductor NVIDIA: se requiere un controlador para CUDA 11.0 o más nuevo;
CUDA Toolkit (en caso de que necesite usar el suyo): solo se admiten CUDA Toolkit 11.4 o más nuevos.
Si no puede cumplir con estos requisitos, es posible que deba instalar una versión anterior de CUDA.JL:
Cuda.jl v5.3 es la última versión con soporte para PowerPC (eliminado en v5.4)
CUDA.JL V4.4 es la última versión con soporte para CUDA 11.0-11.3 (en desuso en v5.0)
CUDA.JL V4.0 es la última versión en funcionar con CUDA 10.2 (eliminado en v4.1)
CUDA.JL V3.8 es la última versión en funcionar con CUDA 10.1 (eliminado en v3.9)
CUDA.JL V1.3 es la última versión en funcionar con CUDA 9-10.0 (eliminado en v2.0)
Gran parte del software en este ecosistema se desarrolló como parte de la investigación académica. Si desea ayudar a apoyarlo, protagonice el repositorio, ya que tales métricas pueden ayudarnos a asegurar fondos en el futuro. Si usa nuestro software como parte de su investigación, enseñanza u otras actividades, estaríamos agradecidos si pudiera citar nuestro trabajo. El archivo citation.bib en la raíz de este repositorio enumera los documentos relevantes.
El paquete se prueba y se desarrolla para Julia 1.10 y superior. El desarrollo y las pruebas principales ocurren en X86 Linux, pero se espera que el paquete funcione en Windows y ARM y también.
Las preguntas de uso se pueden publicar en el Foro de Discurso de Julia bajo el dominio de la GPU y/o en el canal #GPU de Julia Slack.
Las contribuciones son muy bienvenidas, al igual que las solicitudes y sugerencias de funciones. Abra un problema si encuentra algún problema.