草庐IT

cuda-c-programming-guide

全部标签

c++ - CUDA 真的没有类似 calloc() 的 API 调用吗?

从查看CUDA5.5APIReference和CUDACProgrammingGuide似乎没有cudaCalloc(),它是标准C库的calloc()的GPU等效项.是否真的没有用于分配初始化为全零的缓冲区的API功能?有什么比调用cudaMalloc()然后调用cudaMemset()更好的方法吗? 最佳答案 IstherereallynoAPIfunctionalityforallocatingabufferinitializedtoall-zeros?确实没有。IstheresomethingbetterIcandothat

c++ - 使用 CUDA-aware MPI 的要求

我想通过CUDA感知MPI在不同CUDA设备之间交换数据,如thisarticle中所述.据我了解,以下代码应该可以完成这项工作:#includeintmain(intargc,char*argv[]){intrank;float*ptr=NULL;constsize_telements=32;MPI_Statusstatus;MPI_Init(NULL,NULL);MPI_Comm_rank(MPI_COMM_WORLD,&rank);cudaMalloc((void**)&ptr,elements*sizeof(float));if(rank==0)MPI_Send(ptr,ele

c++ - 为什么我的 CUDA 实现与我的 CPU 实现一样快

我在标准C++和CUDA中创建了一些代码来对1300x1300灰度图像和15x15内核进行二维卷积。两个版本:中央处理器:#include#include#defineN1300#defineK15#defineK2((K-1)/2)templateinlineintindex(intx,inty){returnx*my+y;}intmain(){double*image=newdouble[N*N];double*kernel=newdouble[K*K];double*result=newdouble[N*N];for(intx=0;x=0andx+i-K2=0andy+j-K2(

c++ - Visual Studio 2010 (Windows 7) 中的 Hello World C++ CUDA 程序

我正在尝试编译这个HelloWorldprogram在安装了VisualStudio2010的Windows7中,但在运行nvcchellocuda.cu时出现以下错误消息:nvccfatal:nvcccannotfindasupportedclversion.OnlyMSVC8.0andMSVC9.0aresupported如何编译这个CUDA程序? 最佳答案 NVCC从VisualStudio环境变量中检查VC++编译器版本。NVCC表示它仅支持MSVC8.0和9.0编译器。在您的情况下,您有MSVC10.0编译器。这个问题似乎

c++ - CUDA、NPP 滤波器

CUDANPP库支持使用nppiFilter_8u_C1R命令过滤图像,但不断出现错误。我可以毫无问题地启动并运行boxFilterNPP示例代码。eStatusNPP=nppiFilterBox_8u_C1R(oDeviceSrc.data(),oDeviceSrc.pitch(),oDeviceDst.data(),oDeviceDst.pitch(),oSizeROI,oMaskSize,oAnchor);但如果我将其改为使用nppiFilter_8u_C1R,eStatusNPP将返回错误-24(NPP_TEXTURE_BIND_ERROR)。下面的代码是我对原始boxFilt

c++ - 使用 CUDA 实现、python (pycuda) 或 C++ 处理图像?

我在一个使用CUDA处理图像的项目中。该项目只是图像的加法或减法。请问您的专业意见,哪一个最好,这两者的优缺点是什么?我感谢大家的意见和/或建议,因为这个项目对我来说非常重要。 最佳答案 一般回答:没关系。使用您更习惯的语言。但是请记住,pycuda只是CUDAC接口(interface)的包装器,因此它可能并不总是最新的,它还增加了另一个潜在的错误来源,......Python非常擅长快速原型(prototype)制作,所以我个人会选择Python。如果需要,您以后可以随时切换到C++。

c++ - OpenCL 或 CUDA 调用的开销?

我正在编写一个函数来处理很多BLASgemv操作。我希望能够在GPU上执行此操作,并且我已尝试使用cuBlas。我的问题是我的矩阵和vector相当小,100x100矩阵和100vector。与CPU相比,CuBlas需要很长时间,我知道为什么,CPU上的快速缓存和调用GPU的大量开销混合在一起。因此,我正在尝试找出一种聪明的方法来测量将调用传递给GPU所需的时间。这是CUDA设置调用并将其发送到图形处理器所花费的时间——不包括执行矩阵vector乘法实际花费的时间。我该怎么做? 最佳答案 更新:以下结果是针对2005硬件(nVid

c++ - 使用 boost::program_options 解析配置文件

你好,我写了一个类来通过boost::program_options解析配置文件。这是我的(缩短):namespacensProOp=boost::program_options;nsProOp::variables_mapm_variableMap;nsProOp::options_descriptionm_description;//ToaddoptionstothevariableMap,e.g."addOption("money_amount");"templatevoidaddOption(conststd::string&option,conststd::string&he

c++ - Cuda 工具包目录不存在

我对cuda4.1和visualstudio2010有疑问。当我想编译.cu文件时,出现以下错误:C:\ProgramFiles(x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\CUDA4.1.targets(249,9):error:TheCUDAToolkitdirectory''doesnotexist.PleaseverifytheCUDAToolkitisinstalledproperlyordefinetheCudaToolkitDirpropertytoresolvethiserror.我安装了干净的Windows7

c++ - Qt + VS2010 : The program can't start because <xyz>. 你的电脑缺少dll

我从以下.pro文件创建了一个visualstudio2010解决方案:TEMPLATE=appCONFIG+=qtyyyzzzdebug_and_releaseTARGET=XYZdepthINCLUDEPATH+=.#HEADERS=SOURCES=main.cppxyzMainWidget.cppyyy{LIBS+=$(YYY_DIR)/release/yyy.libINCLUDEPATH+=$(YYY_DIR)}zzz{LIBS+=$(ZZZ_DIR)/lib/x86/ZZZ.libINCLUDEPATH+=$(ZZZ_DIR)/inc}当然,我已经替换了里面的一些关键词。它引