Tag: CUDA-DRIVER
El mecanismo de gestión de memoria virtual de nivel bajo de CUDA involucra lo siguiente: Asignaciones físicas Reservas de rango de direcciones virtuales Mapeos entre los anteriores De manera conveniente, si mapeas una asignación física a algún rango de direcciones, puedes “liberar” la asignación física y seguir usándola hasta que . . . Read more
Considere el siguiente programa (escrito en sintaxis C): #include <cuda.h> #include <stdio.h> #include <stdlib.h> int main() { CUresult result; unsigned int init_flags = 0; result = cuInit(init_flags); if (result != CUDA_SUCCESS) { exit(EXIT_FAILURE); } CUcontext ctx; unsigned int ctx_create_flags = 0; CUdevice device_id = 0; result = cuCtxCreate(&ctx, ctx_create_flags, device_id); . . . Read more
¿Cómo puedo obtener de forma programática la versión real del controlador CUDA (por ejemplo, 470.57.02, y no 11.4 como la versión CUDA correspondiente ni 11040)? Sabemos que no es mediante cudaDriverGetVersion()…
La API de tiempo de ejecución de CUDA tiene las funciones cudaGetSymbolAddress() y cudaGetSymbolSize() para trabajar con variables globales en el dispositivo desde el código en el host, utilizando sus nombres (identificadores de código fuente) como manejadores. En la API del controlador, tenemos cuModuleGetGlobal(), que nos permite hacer lo mismo… . . . Read more
El tiempo de ejecución de CUDA tiene una noción de un “dispositivo actual”, mientras que el controlador de CUDA no lo tiene. En su lugar, el controlador tiene una pila de contexto, donde el “contexto actual” está en la parte superior de la pila. ¿Cómo interactúan estos dos? Es decir, . . . Read more