草庐IT

nvidia-cuda-toolkit

全部标签

c++ - 将 CUDA 集成到 C++ 应用程序中以使用现有的 C++ 类

我有一个现有的应用程序,它使用C++类、C++包装器和FORTRAN代码来处理应用程序的计算密集型部分。我想在CUDA中实现部分FORTRAN以利用并行化,但我仍想访问一些子例程,因此我需要链接CUDA、C++和FORTRAN代码。我有三个问题:1.如何将所有目标文件正确链接到Linux终端和Makefile(包含在下面)?2.在不混淆编译器对设备和主机代码的识别的情况下,在类头中引用CUDA函数的正确方法是什么?3.将类传递给CUDA就像将类传递给任何其他外部C代码一样吗?注意:除了Makefile之外,我没有包含完整代码(其中一些代码很长)。如果我需要包含更多内容,请告诉我。.h文

c++ - 在 CUDA 内核中使用 memset

这似乎是一个显而易见的问题,但谷歌没有找到任何有趣的东西。在CUDA内核中使用memset是否合法,例如:__device__voidmyKernel(){intarray[10];memset(array,0,sizeof(array));//...etc...}(我知道intarray[10]={0};可能更好,但这只是一个更复杂的例子。) 最佳答案 是的,如AppendixBoftheprogrammingmanual中所述,memset,以及memcpy,malloc,和free(后两者仅在计算能力上>=2.0设备)在设备代

c++ - 如何将 CUDA .cu 代码与 C++ 应用程序集成

这篇文章与我之前的文章非常相似:HowtoseparateCUDAcodeintomultiplefiles恐怕我在实际询问中犯了如此大的错误,以至于无法在那里尝试和更正它会太困惑。我将此代码松散地基于CUDASDK中的cppIntegration示例。我想要一个main.cpp和我的main()函数,并让它调用一个单独的.cu文件在GPU上做一些工作。在单独的.cu文件中,我希望它能够调用驻留在另一个.cu文件中的内核代码。我设想了三个文件:Main.cpp、KernelWrapper.cu和MyKernel.cu。用于测试目的的Main.cpp除了调用位于KernelWrapper

c++ - 使用 nvcc (CUDA) 编译 Eigen 库

我尝试使用nvcc(CUDA5.0RC)编译以下程序(main.cu):#include#includeintmain(intargc,char**argv){std::cout不幸的是,我收到了一堆警告和错误,我只能使用nvcc而不是Microsoft编译来解释。这个假设对吗?有什么办法可以用nvcc编译Eigen吗?(我实际上不想将特征矩阵传输到GPU,只是访问它们的成员)?如果使用nvcc编译Eigen不可行,是否有关于分离主机和设备代码的巧妙方法的很好的指南/教程?我正在使用CUDA5.0RC、VisualStudio2008、Eigen3.0.5。为了编译.cu文件,我同时使

c++ - openCV 2.4.9 与 CUDA 6.5 的编译错误

我正在运行安装了CUDA6.5的ubuntu14.04系统。我正在尝试使用OpenCV库的特征匹配的gpu实现,我的openCV库版本是2.4.9。cmake..没问题,但是当我想制作项目时,它会给我这样的错误:>/usr/local/include/opencv2/gpu/gpu.hpp:432:29:error:‘vector’does>notnameatypeCV_EXPORTSvoidmerge(constvector&src,>GpuMat&dst,Stream&stream=Stream::Null());>^/usr/local/include/opencv2/gpu/g

c++ - CMake 没有正确找到 CUDA 库

我正在尝试构建一个需要CUDA的程序。对于我提供的CMake脚本:cmake-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda..找到CUDA并且CMake正常运行:staudt~/workspace/clutbb/cluster/build$cmake-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda..--FoundCUDA:/usr/local/cuda(foundversion"6.5")--FoundIntelTBB--Boostversion:1.56.0--FoundthefollowingBoostlibrarie

c++ - CUDA 流和上下文

我目前正在使用一个生成一堆pthreads(linux)的应用程序,并且每个pthreads创建它自己的CUDA上下文。(现在使用cuda3.2)。我遇到的问题是,似乎每个线程都有自己的上下文,这会占用GPU上的大量内存。每个线程大约200MB,所以这真的限制了我。我能否简单地在主机线程中创建流,将流引用传递给工作线程,然后工作线程能够将它们的流编号传递给我的CUDA库,并且所有工作都在同一上下文中进行?工作线程是否自动知道与其父线程相同的CUDA上下文?谢谢 最佳答案 每个CUDA上下文确实会占用相当多的设备内存,并且它们的资源彼

c++ - CUDA 结果使用非常大的数组返回垃圾,但没有报告错误

我正在创建一个测试程序,它将创建一个设备和一个大小为n的主机数组,然后启动一个内核来创建n个分配常量值0.95的线程f到设备数组中的每个位置。完成后,将设备数组复制到主机数组,并对所有条目进行总计,并显示最终总计。下面的程序似乎适用于大约6000万个float的数组大小并很快返回正确的结果,但在达到7000万个时程序似乎会挂起一段时间并最终返回总数的NAN结果。在6000万次运行后检查主机阵列显示它正确填充了0.95f,但在7000万次运行后检查它显示它填充了NAN。据我所知,所有CUDA调用都不会返回错误。我使用的是2GBGT640m(Compute3.0),最大块大小为1024,最

c++ - CUDA 6.0 链接错误 : undefined reference to `__cudaUnregisterFatBinary'

我正在尝试在Eclipse中编译一个简单的CUDA程序。g++-L/opt/cuda/lib64-o"cuda_esn"./cu_cuda_test.o./main.o-lcuda-lstdc++如您所见,我正在链接-lcuda并设置库路径-L/opt/cuda/lib64。但不幸的是,我不知道为什么这没有编译。完整输出:18:36:35****IncrementalBuildofconfigurationDefaultforprojectcuda_esn****makeallBuildingfile:../cuda_test.cuInvoking:CUDANVCCCompilernv

Nvidia Maxine 精讲(一)AR-SDK安装使用——BodyTrack 【非官方全网首发】

NvidiaMaxine精讲(一)AR-SDK安装使用——BodyTrack功能演示NvidiaMaxine精讲NvidiaMaxine精讲(一)AR-SDK安装使用——BodyTrack功能演示动机-*2022/10/10看到这个SDK20天前更新了*二、软硬件环境要求详细说明1.安装简介2.环境具体说明3.编译运行3.1版本对比说明——助你更好理解3.2编译sdk3.3BodyTrack使用详细解说程序命令行参数选项程序键盘控制参数选项4.代码部分补充内容模型算法解密(本人猜测版本:非官方介绍)??小疑问:这里有个冲突就是英伟达这个KAMA论文中:声称的是26个点,但是实际应用中不管是ma