es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo obtener el identificador del módulo del controlador CUDA para las funciones y variables globales en el programa compilado?

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… excepto que toma un CUmodule en el que se encuentra el símbolo global. Si estás trabajando con código que compilaste y cargaste/agregaste dinámicamente en un módulo, estás listo. Pero, ¿qué pasa si esas variables globales forman parte de tu programa, compilado estáticamente con NVCC en lugar de cargarse de forma dinámica?

Supongo que hay algún tipo de “módulo principal” o “módulo predeterminado” para cada programa compilado, con sus variables y funciones integradas. ¿Puedo obtener un manejador para ello?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en CUDA, global, NVRTC y CUDA Driver, puedo explicar que la API de tiempo de ejecución de CUDA proporciona dos funciones, cudaGetSymbolAddress() y cudaGetSymbolSize(), que permiten al usuario trabajar con variables globales en el dispositivo desde el código del lado del host utilizando sus nombres como identificadores. Por otro lado, la API del controlador tiene cuModuleGetGlobal(), que cumple el mismo propósito y toma un CUmodule como argumento, representando el módulo en el que está presente el símbolo global. Sin embargo, si las variables globales se compilan estáticamente usando NVCC en lugar de cargarse dinámicamente, no está claro cómo acceder a ellas dentro del programa. Se asume que cada programa compilado tiene un “módulo principal” o “módulo predeterminado” que contiene variables globales y funciones incorporadas. La pregunta sigue en pie, ¿podemos obtener un identificador para ello?

Comments are closed.