CUDA动态库生成和调用的简单例子
昨天讲了关于静态库(lib)的生成和使用,今天用讲一下动态库(dll)的例子。
仍以 Window 和 VS2008 环境为例。
动态库的生成:
1. 建立一个名为 TestLib 的项目,配置CUDA环境。
2. 建立头文件 Test.h
3. 建立cu文件 Test.cu
4. 在项目属性中设置输出类型为Dynamic Library (.dll)
5. Build. 生成一个TestLib.lib 和 一个 TestLib.dll
动态库的调用:
1. 新建一个名为 Test 的项目。注意,这里可以不需要配置CUDA环境。
2. 建立 main.cpp
3. 加入TestLib.lib
4. Build. 把 TestLib.dll 和生成的 可执行程序放在一起(或者系统目录等)。运行。
运行结果:
200
仍以 Window 和 VS2008 环境为例。
动态库的生成:
1. 建立一个名为 TestLib 的项目,配置CUDA环境。
2. 建立头文件 Test.h
// Test.h
#ifndef TEST_H
#define TEST_H
extern "C"
void __declspec (dllexport) Test(int n);
#endif
3. 建立cu文件 Test.cu
// Test.cu
#include <stdio.h>
#include "Test.h"
__global__
void Kernel(int *n)
{
*n *= 10;
}
void Test(int n)
{
int *n_d;
cudaMalloc((void**)&n_d, sizeof(int));
cudaMemcpy(n_d, &n, sizeof(int), cudaMemcpyHostToDevice);
Kernel<<<1, 1>>>(n_d);
cudaMemcpy(&n, n_d, sizeof(int), cudaMemcpyDeviceToHost);
cudaFree(n_d);
printf("%d\n", n);
}
4. 在项目属性中设置输出类型为Dynamic Library (.dll)
5. Build. 生成一个TestLib.lib 和 一个 TestLib.dll
动态库的调用:
1. 新建一个名为 Test 的项目。注意,这里可以不需要配置CUDA环境。
2. 建立 main.cpp
#include "Test.h"
void main()
{
Test(20);
}
3. 加入TestLib.lib
4. Build. 把 TestLib.dll 和生成的 可执行程序放在一起(或者系统目录等)。运行。
运行结果:
200
...全文
相关推荐
CUDA 入门小例子,简单实用,上手快,了解CUDA程序的框架
CUDA 入门小例子,简单实用,上手快,了解CUDA程序的框架,迅速入门
一个成功运行的CUDA小例子
忙活了很久,终于编译并成功运行了一个自己的CUDA例程,里面有三个小测试程序,包括Hello CUDA!、修改矩阵、矩阵块加
Qt5.15.2+openCV4.5.5+MSVC2019+cuda编译生成的动态库(带world和不带world)
Qt5.15.2+openCV4.5.5+MSVC2019+cuda编译生成的动态库(带world和不带world) https://blog.csdn.net/aggs1990/article/details/124167901 CSDN审核可能较慢,如无法下载,可以过段时间再回来看下 仅供相关爱好者交流使用,请于下载24小时内删除
CUDA典型例子
典型cuda编程实例,可以看看,适合cuda编程爱好者
matlab调用cuda函数
利用matlab调用cuda函数。利用GUP获得高性能,利用matlab可以获得快速的开发



