这个有教程:

https://blog.csdn.net/menglongbor/article/details/7526493

原文:https://stackoverflow.com/questions/16423643/creating-dll-from-cuda-using-nvcc

nvcc编译多个库,不知道是否成功:

nvcc -arch=sm_35 -o ps_roi_align_op.dll --shared ps_roi_align_op.cu rotated_ps_roi_align_op.cu ps_roi_align_grad_op.cu -I"C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v8.0/include" -I"D:/ProgramData/Miniconda3/envs/python3.6/Lib/site-packages/tensorflow/include"

python调用:

if __name__ == '__main__':dll = CDLL(r"./kernel.dll")# CMPFUNC = CFUNCTYPE(c_void_p, c_void_p, c_int, c_int, c_int, c_int)
    # m_callback = CMPFUNC(callb_stream)
    # filename=b"D:\\project\\hik_client_dll\\x64\\Debug\\201805171600.dat"
    filename = b"201805032342.dat"

    # dll.play_file(str2char_p(filename), m_callback)
    begin=datetime.datetime.now()dll.hello(str2char_p(filename))end=datetime.datetime.now()print("time",(end-begin).microseconds)

编译:

nvcc -arch=sm_35 -o kernel.dll --shared kernel.cu

使用NVCC的CUDA创建的DLL

我要创建从CUDA代码。DLL(kernel.cu)为了从外部C程序这个库。经过努力我只留下了一个简单的C函数.CU文件。代码如下:

kernel.cu

#include <stdio.h>
#include "kernel.h"
void hello(const char *s) {printf("Hello %s\n", s);
}

kernel.h

#ifndef KERNEL_H
#define KERNEL_H
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#ifdef __cplusplus
extern "C" {
#endif
void __declspec(dllexport) hello(const char *s);
#ifdef __cplusplus
}
#endif
#endif // KERNEL_H

我试图首先生成一个 kernel.o 使用对象 nvccg++ 创建DLL如下:

nvcc -c kernel.cu -o kernel.o
g++ -shared -o kernel.dll kernel.o -L"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64" -lcudart

它工作正常,并产生 kernel.dll 。为了测试DLL文件我写了这个简单的程序 main.c

#include <stdio.h>
#ifdef __cplusplus
extern "C" {
#endif
void __declspec ( dllimport ) hello(const char *s);
#ifdef __cplusplus
}
#endif
int main(void) {hello("World");return 0;
}

编译:

g++ -o app.exe main.c -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include" -L. -lkernel

结果是访问错误开始执行时。 不过,如果我.CU在c文件(因为它只是C代码),使用的命令,它的工作。输出变化,据我所知违约,而不是CUDA之一。 你觉得 CodeGo.net,是不是有相关的问题,或者我在做什么错误? 编辑:我忘了这可能是重要的信息。警告出现在以克++(创建DLL时),优先个呼叫,它们是不同的,具体取决于.CU c或.CPP。 .CU

Warning: .drectve `/FAILIFMISMATCH:"_MSC_VER=1600" /FAILIFMISMATCH:"_ITERATOR_DEBUG_LEVEL=0"
/DEFAULTLIB:"libcpmt" /DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" /EXPORT:hello ' unrecognized

它不工作。 cpp和。.C

Warning: .drectve `/DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES" /EXPORT:hello ' unrecognized

和它的作品。
本文地址 :CodeGo.net/3794193/ 
------------------------------------------------------------------------------------------------------------------------- 
1. 解决了。我仍然不知道为什么发生了(不知是不是官方的编译器就像罗伯特Crovella说的),但在更换制作一个DLL通过这一个工程:

nvcc -o kernel.dll --shared kernel.cu

注意双破折号(以这种方式工作),并使其直接,而不是创建优先的事实 .o 然后使得DLL从对象。

cuda nvcc dll相关推荐

  1. cuda nvcc版本不一致_显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么?

    在使用深度学习框架的过程中一定会经常碰到这些东西,虽然anaconda有时会帮助我们自动地解决这些设置,但是有些特殊的库却还是需要我们手动配置环境,但是我对标题上的这些名词其实并不十分清楚,所以老是被 ...

  2. cuda nvcc版本不一致_入坑第一步:Win10安装cuda+cuDNN+TensorFlow-GPU走过的那些路

    这两天安装tensorflow-gpu被折腾够呛,幸亏最后成功了,给想要安装的大神们看下我走过的坑,避免掉入. 如果是新手,需要安装下面几个软件: 第一步 安装anaconda 首先就是Python编 ...

  3. cuda nvcc版本不一致_windows 验证CUDA和CUDNN是否安装成功

    安装完成CUDA,使用 nvcc -V 验证是否安装成功,看到如下信息说明安装成功 接下来就可以安装 cuDNN 了. 安装cuDNN 下载 cuDNN,下载之前需要先注册一下 Nvidia 的账号, ...

  4. 显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn

    显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn是什么 在使用深度学习框架的过程中一定会经常碰到这些东西,虽然anaconda有时会帮助我们自动地解决这些设置,但 ...

  5. 显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn详解

    在使用深度学习框架的过程中一定会经常碰到这些东西,虽然anaconda有时会帮助我们自动地解决这些设置,但是有些特殊的库却还是需要我们手动配置环境. GPU型号含义 参考[GPU编程系列之一]从深度学 ...

  6. CUDA 并行计算 机器学习 NVCC CUDNN CUDATOOLKIT CUDA DRIVER 显卡驱动(NVIDIA Driver) 显卡(GPU)

    微信公众号: 点击蓝色字体小白图像与视觉进行关注 关于技术.关注yysilence00.有问题或建议,请公众号留言 整理知识,学习笔记 发布日记,杂文,所见所想 CUDA 并行计算 机器学习 NVCC ...

  7. 显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么?

    1|0GPU型号含义 参考[GPU编程系列之一]从深度学习选择什么样的gpu来谈谈gpu的硬件架构 显卡: 简单理解这个就是我们前面说的GPU,尤其指NVIDIA公司生产的GPU系列,因为后面介绍的c ...

  8. CUDA编译(一)---使用nvcc编译cuda

    CUDA编译(一)-使用nvcc编译cuda nvcc介绍 示例 nvcc介绍 nvcc是编译cuda程序的编译器,CDUA C是在C语言上的扩展,所以它依赖C编译器(C编译器在window下是cl. ...

  9. CUDA在Windows下的软件开发环境搭建

    http://www.cnblogs.com/yaoyuanzhi/archive/2010/11/13/1876215.html CUDA在Windows下的软件开发环境搭建 本文我们以Visual ...

最新文章

  1. 一个表对应另一个表中多个主键的查询方法(把一个表当成两个表用)
  2. Git学习笔记:标签管理以及GItHub
  3. 回文子串—leetcode647
  4. 基于live555的视频直播 DM368IPNC RTSP分析
  5. python中zip的使用_浅谈Python中的zip()与*zip()函数详解
  6. Java番外篇3——线程池
  7. CVPR2021—SurFree:一个快速的无代替模型的黑盒攻击
  8. C#读写SQLSERVER中Image类型图片
  9. 从程序员到项目经理(16):原来一切问题都是可以解决的【转载】
  10. c++线程类 linux,C++进阶学习——线程基类的设计(Linux)
  11. 免费JS富文本编辑器 总有一款会适合你
  12. 联想计算机电源风扇怎样清理,风扇除尘功能说明:联想电源管理V1.0、V7.0、V8.0及早期机型除尘说明...
  13. 解决win 7拷贝共享文件很慢
  14. python怎么读xlsx_使用Python读取xlsx文件
  15. 北京联通dns服务器位置,联通DNS服务器地址怎么设置
  16. 语音文件格式转换:.amr 转 .MP3, .wav格式
  17. iOS开发 iPhone各型号的屏幕参数对照表 (pt 、px)
  18. linux 硬件故障 日志_对Linux中的硬件问题进行故障排除
  19. vscode下载太慢,快速下载vscode方法!
  20. 一文读懂Apache Kylin(麒麟)

热门文章

  1. XenStore: 使用,结构和原理
  2. 新视野计算机等级考试官网,计算机二级C语言
  3. 长方形纸做容积最大的长方体_儿童手工折纸,童年玩具纸扇子怎么折?一起来回忆下经典折法吧...
  4. 计算机硬件技术 实验的软件,计算机硬件技术基础软件实验讲义.doc
  5. 如何设置html中按钮边框颜色,CSS-为什么我的电子邮件按钮边框显示两种颜色,而边框颜色设置为仅显示一种颜色?...
  6. es中修改某个字段值_搜索引擎之laravel中使用elasticsearch(一)
  7. 用Android写代码,用css写个android机器人代码分享
  8. 皮一皮:昨天是一个凄苦的节日...
  9. 这可能是对 IOC 和 DI 解释的最清楚的一篇文章了!
  10. 微信年末最后一发新功能!对生活很有帮助,必须了解一下!