![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CUDA
文章平均质量分 54
simple_whu
这个作者很懒,什么都没留下…
展开
-
nvcc fatal : A single input file is required for a non-link phase when an outputfile is specified
用VS编译colmap3.8,于是用cmakevcpkg配置好VS2022的工程。在编译时,需要使用nvcc编译器编译gpu代码。nvcc fatal : A single input file is required for a non-link phase when an outputfile is specified报错是/Zc:__cplusplus的错误使用引起的。原创 2023-03-12 17:09:30 · 1874 阅读 · 0 评论 -
CUDA编程与硬件架构理解
Nvidia GPU的CUDA编程模型预览版,内容有待完善。1. Kernelkernel函数是CUDA单个线程所执行的函数。其调用方式如下所述:kernel_name<<< Dg, Db, Ns, S >>>([kernel arguments]);Dg is of type dim3 and specifies the dimensions and size of the gridDb is of type dim3 and specifies t原创 2022-05-19 08:30:13 · 854 阅读 · 0 评论 -
CUDA11.6+VS2022 编译报错‘cub is ambiguous’
找到工程中的using namespace thrust;将其注释掉,然后重新编译。若提示identifier "xxx" is undefined就在"xxx"前面加上thrust::。例如原创 2022-04-02 14:56:11 · 965 阅读 · 0 评论 -
CUDA中的 “restrict“ is not allowed 错误
CUDA中的"restrict" is not allowed 错误const __restrict__ uint32_t *addr;语句报的这个错。这就要说到__restrict__的用法。__restrict__用法__restrict__用于标识一个指针,提示编译器:这个指针对应的内存是被唯一指定指针访问的。因此不能用于指针以外的类型,有以下几种正确和错误的用法__restrict__ SomeType b[];// 错误SomeType __restrict__ b[];// 错误_原创 2022-04-19 09:52:00 · 1323 阅读 · 0 评论 -
nvcc编译error: asm operand type size(*) does not match type/size implied by constraint ‘r’
报错信息error: asm operand type size(*) does not match type/size implied by constraint ‘r’出错原因:由于项目包含了gpu代码和cpu代码,nvcc编译gpu代码的时候默认是编译64位平台结果,然而cpu代码编译时可能使用了32位的编译器(如下图红框内所示)。因此,为了解决问题,使用64位的cl.exe或gcc即可。即,选择图示的命令行入口,再运行编译指令即可。...原创 2022-04-21 12:16:40 · 1236 阅读 · 1 评论 -
在VS2022 MFC程序中调用CUDA代码
在VS2022 MFC程序中调用CUDA函数Pre: 安装好CUDA后VS中该有的效果首先,假设你已经安装好了CUDA,并且成功集成在VS2022中(即新建项目有CUDA项目的选项,如下图所示)。你已经有一个MFC项目和一份CUDA项目,且都可以成功编译运行。目标是,在MFC项目中调用CUDA项目中的函数:例如,想在MFC程序中点击某个按钮以调用GPU处理程序。那么,除了新增一个按钮控件并添加处理程序之外,还要将CUDA函数集成到MFC项目中。将CUDA函数集成到MFC项目中1. 为项目添加原创 2022-04-24 17:38:01 · 2059 阅读 · 2 评论 -
多个版本CUDA的安装使用注意事项
多个版本CUDA的安装与切换使用从英伟达官方页面下载所需版本的离线安装包。双击安装即可,没有什么需要特别注意的(如果要在Visual Studio中使用,则要确保勾选了)。随便安装好几个版本。环境变量配置应当是安装程序自动完成的。如下图所示,安装了CUDA11.6(先)和CUDA10.2(后)。可见,后安装的会优先被找到(查找nvcc时从上往下遍历path,先出现在环境变量中的优先使用)。注意在开发中根据自己的需要的版本将环境变量移动到最上面。与此同时,多了几个环境变量:如果程序读取CUDA原创 2022-04-23 15:55:17 · 1081 阅读 · 0 评论