CUDA驱动程序CUmodule

时间:2013-06-11 12:38:14

标签: c++ cuda nvidia

我正在尝试理解CUmodule在CUDA驱动程序API函数中的实际用途。

许多CUDA驱动程序API函数都有CUmodule句柄,但它是什么?它是一个控制驱动程序调用过程的DLL的句柄,我可以像使用CUDA函数的名称一样调用GetProcAddress吗?

请将它简单化(普通英语首选)

1 个答案:

答案 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;
}