cuda相关内容

CUDA,mutex和atomicCAS()

最近我开始开发CUDA和面对atomicCAS()的问题。 要在设备代码中使用内存进行某些操作,我必须创建一个互斥,以便只有一个线程可以在关键代码段中使用内存。 下面的设备代码运行在1块和多个线程上。 __ global__ void cudaKernelGenerateRandomGraph(...,int * mutex) { int i = threadIdx.x; ..
发布时间:2016-10-14 20:04:32 C/C++开发

CUDA 6.5抱怨不支持gcc 4.9 - 该怎么办?

我刚刚从Kubuntu 12.04升级到14.04。现在,当我想编译CUDA代码(使用CUDA 6.5)时,我得到: #error - 不支持的GNU版本!不支持gcc 4.9及以上版本! 我安装了gcc-4.8(和4.7),并尝试使用符号链接c $ c> / usr / local / cuda / bin 此处建议的解决方案: CUDA与我的gcc版本 ..
发布时间:2016-10-14 19:52:50 C/C++开发

使用CUDA缩减矩阵列

我有一个矩阵,我想使用CUDA,并以最快的方式计算列方式的平均值(归结为简单的和),即返回一个行向量包含每列的平均值矩阵。用于计算单个列向量的和的和简化实现如下: template __global__ void kernelSum(const T * __restrict__ input,T * __restrict__ per_block_results, ..
发布时间:2016-10-14 13:01:54 C/C++开发

什么是CUDA设备代码支持的真正的C ++语言结构?

CUDA文档的3.2版本的附录D指的是CUDA设备代码中的C ++支持。 清楚地提到CUDA支持“用于计算能力2.x的设备的类”。但是,我正在使用计算能力1.1和1.3的设备,我可以使用此功能! 例如,此代码的工作原理: //类定义自愿简化 类Foo { private: int x_; public: __device__ Foo(){x_ = 42; } ..
发布时间:2016-10-14 12:55:32 C/C++开发

不支持外部呼叫 - CUDA

目的是调用另一个文件中可用的设备函数,当我编译全局内核时,它显示以下错误 *不支持外部调用(发现非内联调用_Z6GoldenSectionCUDA )* 。 问题代码(不是完整代码,但出现问题的地方), cat norm.h #ifndef NORM_H_ #define NORM_H_ #include __device__ double invcd ..
发布时间:2016-10-14 11:10:50 C/C++开发

使用Thrust通过键组合两个列表

给定两个键值列表,我试图通过匹配键并在键匹配时对两个值应用函数来组合两侧。在我的情况下,我想乘以值。一个小例子,使其更清楚: 左键:{1,2,4,5,6} 左值:{3,4,1,2,1} 右键:{1,3,4,5,6,7}; 右值:{2,1,1,4,1,2}; 预期的输出键:{1,4,5,6} 预期输出值:{6,1,8,1} 我已经能够在CPU上使用下面的代码 ..
发布时间:2016-10-14 11:09:48 C/C++开发

如何创建一个CUDA上下文?

如何创建CUDA上下文? 第一次调用CUDA很慢,我想在启动内核之前创建上下文。 解决方案 强制运行时API上下文建立的规范方法是调用 cudaFree(0)。如果您有多个设备,请使用您要建立上下文的设备的ID调用 cudaSetDevice(),然后 cudaFree(0)建立上下文。 编辑:注意,从CUDA 5.0开始,上下文建立的启发式略有不同, cudaSetDevice( ..
发布时间:2016-10-14 10:39:39 C/C++开发

编译包含动态并行的代码失败

我使用CUDA 5.5和NVDIA GeForce GTX 780进行动态并行编程,计算能力为3.5。我调用内核函数内核函数,但它给我一个错误: 错误:调用__global__函数(“kernel_6” )从__global__函数(“kernel_5”)只允许在compute_35体系结构或以上 p> 解决方案 您可以这样做 nvcc -arch = sm_35 -r ..
发布时间:2016-10-13 11:53:35 C/C++开发

试图获得CUDA 7.5与GCC 5.x一起使用

所以,如果你尝试使用nvcc当系统GCC是版本5及以上,你会得到一个“不支持的版本”的错误。但是 - 我听说有人报告他们刚刚评论过这一点,CUDA 7.5“为他们工作”与GCC 5.x。 当我做同样,但是(检查是在 $ CUDA_DIR / host_config.h ),并编译的东西,我得到以下错误: /usr/lib/gcc/x86_64-redhat-linux/5.3.1/i ..
发布时间:2016-10-13 10:50:24 C/C++开发

CUDA如何获取网格,块,线程大小和非平方矩阵计算

我是CUDA的新用户,需要帮助了解一些事情。我需要帮助并行化这两个for循环。具体如何设置dimBlock和dimGrid使这个运行更快。我知道这看起来像sdk中的向量添加示例,但该示例只是为方阵,当我尝试修改该代码为我的128 x 1024矩阵,它不能正常工作。 __ global__ void mAdd(float * A,float * B,float * C) { (int i ..
发布时间:2016-10-13 10:38:11 C/C++开发

CUDA链接错误 - Visual Express 2008 - nvcc致命由于(null)配置文件

我一直在寻找一个可能的解决方案,我的错误在过去2周。我已成功安装了Cuda 64位编译器(工具)和SDK,以及64位版本的Visual Studio Express 2008和Windows 7 SDK与Framework 3.5。我使用Windows XP 64位。我已经确认VSE能够在64位编译,因为我有所有的64位选项可用,使用以下网站上的步骤:(因为Visual Express本身不包括6 ..
发布时间:2016-10-13 09:53:09 C/C++开发

在Windows上编译Qt Creator中的Cuda代码

我一直在试图获得一个Qt项目文件运行在32位的Windows 7系统,其中我想/需要包括Cuda代码。这种组合的东西要么是这么简单,没有人曾经打算在网上举一个例子,或者如此困难,没有人成功,似乎。无论如何,唯一有用的论坛线程我发现是在Linux或Mac上的相同的问题,或在Windows上的Visual Studio。 所有这些都给出各种不同的错误,然而,无论是链接或冲突的库,或文件名中的空格或C ..
发布时间:2016-10-11 23:10:04 C/C++开发

CUDA和类

我已经搜索了一些洞察如何确切地使用类与CUDA,虽然有一个普遍的共识,它可以完成,显然是由人做的,我已经很难找到如何实际做。 我有一个类,实现一个基本的bitset与操作符重载等。我需要能够在主机和设备上实例化这个类的对象,在两者之间复制等。我在.cu中定义这个类吗?如果是这样,我如何在我的主机端C ++代码中使用它?类的函数不需要访问特殊的CUDA变量,如threadId;它只需要能够使用 ..
发布时间:2016-10-11 22:54:35 C/C++开发

如何在Visual Studio 2008中启动一个新的CUDA项目?

这是一个令人难以置信的基本问题,但是如何在Visual Studio 2008中启动一个新的CUDA项目?我发现了大量有关CUDA相关事务的文档,但是没有关于如何开始一个新项目的文档。我正在使用Windows 7 x64 Visual Studio 2008 C ++。我真的很想找到一些真正基本的Hello World应用程序来获得一个基本的程序编译和运行。 编辑: 我试过你的步骤汤姆 ..
发布时间:2016-10-11 21:10:38 C/C++开发

cudaMemcpy分段故障

这段错误发生在cudaMemcpy被调用时: p> CurrentGrid-> cdata [i] = new float [size] cudaMemcpy(CurrentGrid-> cdata [i],Grid_dev-> cdata [i],size * sizeof(float),\ cudaMemcpyDeviceToHost); CurrentG ..
发布时间:2016-10-11 20:50:44 C/C++开发

传入CUDAfy结构内的阵列

使用VS 2012,.NET 4.5,64位和CUDAfy 1.12,我有概念以下证明 使用系统;使用System.Runtime.InteropServices ; 使用Cudafy; 使用Cudafy.Host; 使用Cudafy.Translator; 命名空间测试 { [Cudafy(eCudafyType.Struct) [StructLayout(Layout ..
发布时间:2016-10-03 20:31:46 C#/.NET

CUDA驱动程序API与CUDA运行时

在编写CUDA应用程序,您可以在驱动程序级别或在运行时级别这个图片上所示(该库是CUFFT和CUBLAS的高等数学)工作: 我假定两者之间的折衷是为低伊维尔基尼API,但在增加的代码复杂度为代价来提高性能。有什么具体的区别,并在那里,你可以不与高层次的API做任何显著的东西呢? 我使用CUDA.net与C#互操作,这是建作为驱动API的副本。这鼓励写在C#中有很多相当复杂的代码,而C ..
发布时间:2016-09-22 19:22:32 C#/.NET

PyCuda:CUDA中内核解引用数组元素通过指针

我使用PyCuda到双阵列传递到通过指针CUDA内核。该阵列是一个不同的内核的输出,所以数据已是在GPU上。 在内核中,我试图访问元素在每个阵列做减法载体。那我得到的数组中的元素的值不正确(的H& p是错在下面的code)。 谁能帮我看看我究竟做错了什么? 我的code: 进口pycuda.​​driver为CUDA 进口pycuda.​​autoinit 从pycuda.​​co ..
发布时间:2016-08-25 10:01:54 C/C++

在CUDA多precision乘法

我想实现在CUDA多precision倍增。对于这样做,我已经实现,应计算 uint32_t的的乘法256位操作数类型,并把结果在288位阵列的内核。到目前为止,我已经想出了这个code: __ device__ __constant__ UN_256fe B_const; __global__无效multiply32x256Kernel(uint32_t的A,UN_288bite *结果){ ..
发布时间:2016-08-25 09:53:41 服务器开发