2013-06-11 2 views
1

Я пытаюсь понять, что на практике представляет CUmodule в функциях API драйвера CUDA.Драйвер CUDA CUmodule

Многие функции API драйвера CUDA имеют дескриптор CUmodule, но что это такое? Является ли это дескриптором dll, который управляет процедурами вызова драйвера, и что я могу назвать GetProcAddress с именем функции CUDA или что?

Сделать это просто, пожалуйста (простой английский предпочтительным)

+1

Может быть, я объясню это по-китайски? [Это дескриптор загружаемого бинарного файла cuda.] (Http://stackoverflow.com/questions/15407257/cuda-5-0-cubin-and-cublas-device-compute-capability-3-5) –

+0

Ах, отлично, просто и просто. Позвольте мне принять это: * –

ответ

5

It's a handle to a cuda compiled binary file you load (простой поиск Google и логика: P)

Пример из источника:

#include <stdio.h> 
#include <cuda.h> 
#include <cuda_runtime_api.h> 

int main() { 
    CUresult error; 
    CUdevice cuDevice; 
    CUcontext cuContext; 
    CUmodule cuModule; 
    CUfunction testkernel; 
    // Initialize 
    error = cuInit(0); 
    if (error != CUDA_SUCCESS) printf("ERROR: cuInit, %i\n", error); 
    error = cuDeviceGet(&cuDevice, 0); 
    if (error != CUDA_SUCCESS) printf("ERROR: cuInit, %i\n", error); 
    error = cuCtxCreate(&cuContext, 0, cuDevice); 
    if (error != CUDA_SUCCESS) printf("ERROR: cuCtxCreate, %i\n", error); 
    error = cuModuleLoad(&cuModule, "test.cubin");//see here! 
    if (error != CUDA_SUCCESS) printf("ERROR: cuModuleLoad, %i\n", error); 
    error = cuModuleGetFunction(&testkernel, cuModule, "a"); 
    if (error != CUDA_SUCCESS) printf("ERROR: cuModuleGetFunction, %i\n", error); 
    return 0; 
} 
Смежные вопросы