草庐IT

CUDA_TOOL

全部标签

c++ - CUDA 7.5 实验性 __host__ __device__ lambda

我玩了一下experimentaldevicelambdas在CUDA7.5中引入并在此blogpostbyMarkHarris中提升.对于下面的示例,我删除了很多不需要显示我的问题的东西(我的实际实现看起来更好......)。我尝试编写一个foreach函数,它根据模板参数对设备上的vector(每个元素1个线程)或主机(串行)进行操作。使用这个foreach函数,我可以轻松实现BLAS函数。例如,我使用为vector的每个分量分配一个标量(我在最后附上完整的代码):templatevoidassignScalar(size_tsize,double*vector,doublea){

c++ - 编译 CUDA 示例会出现构建错误

我正在运行Windows764位和VisualStudio2008。我安装了CUDA驱动程序和SDK。SDK附带了很多示例,包括已编译的可执行文件和源代码。编译后的可执行文件运行得很好。当我打开vc90解决方案并在Win32配置中构建时,我收到此错误:Error1fatalerrorLNK1181:cannotopeninputfile'.\Release\bandwidthTest.cu.obj'bandwidthTestbandwidthTest构建日志:1>------Buildstarted:Project:bandwidthTest,Configuration:Release

c++ - Cuda虚拟类

我想在cuda内核中执行一些虚拟方法,但我不想在同一个内核中创建对象,而是想在主机上创建它并将其复制到gpu内存。我正在内核中成功创建对象并调用虚拟方法。复制对象时出现问题。这是有道理的,因为显然虚函数指针是伪造的。发生的只是“Cudagridlaunchfailed”,至少Nsight是这么说的。但是当查看SASS时,它会在取消引用虚函数指针时崩溃,这是有道理的。我当然在使用Cuda4.2以及在适配卡上使用“compute_30”进行编译。那么推荐的方法是什么?还是根本不支持此功能?我有想法首先运行一个不同的内核,它创建虚拟对象并提取虚函数指针以在复制它们之前“修补”我的对象。遗憾的

c++ - 在 Cmake 中使用 Cuda 对象链接

现在我正在开发一个使用Cuda5的对象链接功能的项目。由于项目开始变得复杂,我想切换到使用cmake来编译代码。但是,我似乎无法让对象链接正常工作。我最终创建了该项目的玩具版本,它出现了与原始项目相同类型的错误。玩具项目包含一个调用内核函数以在GPU上运行的主文件(TextureMain.cu)。在每个GPU线程中,引用了一个用户定义类(TextureFunc)的实例,其中该类存在于与主文件不同的文件夹中。该类由该文件夹中的TextureFunc.cu和TextureFunc.h文件组成。这是我正在使用的CMakeList.txt文件:在项目目录下(包含src目录):project(T

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

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

python - 在 Mac OS X (10.7) 上安装 graph-tool - 已经安装了 Boost,但不断出现此错误

我已经在这个问题上停留了一段时间了。我正在尝试安装图形工具-http://graph-tool.skewed.de/download#macos-我有遵循这些步骤的先决条件,图表工具网站链接到:https://gist.github.com/openp2pdesign/8864593我没有使用brewinstall,它似乎没有给我所有的文件,而是去了Boost的官方网站并从那里正确下载,步骤如下:http://www.boost.org/doc/libs/1_41_0/more/getting_started/unix-variants.html它主要是获取一个tar文件并对其进行解压

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