gpu相关内容

CUDA cudaMalloc

我开始写一个新的CUDA应用程序。然而,我沿着一条有趣的弯路。 调用变量x上的第一个cudaMalloc,第一次失败。但是当我第二次调用它时,它返回cudaSuccess。最近升级到CUDA 4.0 SDK,这是一个很奇怪的错误。 我甚至做了一些测试,似乎第一次调用cudaMalloc失败。 解决方案 第一次调用任何cuda库函数都会启动一个初始化子程序。它可能发生,不知何故初始化 ..
发布时间:2016-10-20 22:22:05 C/C++开发

为什么Opencv GPU代码比CPU慢?

我通过笔记本使用opencv242 + VS2010。 我试图对OpenCV中的GPU块进行一些简单的测试,但它显示GPU比CPU代码慢100倍。 在这段代码中,我只是将彩色图像转为灰度图像,使用 cvtColor 的功能 PART1是CPU代码(测试cpu RGB2GRAY),PART2是上传图像到GPU,PART3是GPU RGB2GRAY,PART4是CPU RGB2GRAY。 ..
发布时间:2016-10-17 09:02: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如何获取网格,块,线程大小和非平方矩阵计算

我是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++开发

运行在GPU的C#代码

我没有GPU的编程概念和API的知识。我有几个问题: 是否有可能写一张托管的C#代码和编译/它翻译成某种模块,它可以在GPU上执行的?还是我注定有两种实现方式,一种为CPU上管理,一个用于GPU(据我所知,会有什么可以在GPU上执行的限制)? 是否存在一个体面和成熟的API来对各种GPU硬件厂商独立程序(即通用API)? 是否有任何的最佳做法,如果一个人想开发一个CPU上运行的应用程序, ..
发布时间:2016-09-26 10:59:59 C#/.NET

Fortran接口调用C函数返回一个指针

我有一个C函数, 双* foofunc() { / *函数体* / } 我不知道如何在的Fortran声明一个接口这一号召 C 功能。 此外,如果指针应该是指向 GPU设备内存,我怎么能定义在 Fortran语言界面?我是否需要使用 DEVICE 属性。 请使用由 Fortran语言支持的功能到2003年。 有什么建议? 解决方案 既然你Fortran 2003的,最简单的方式接口F ..
发布时间:2016-08-25 09:28:39 C/C++

OpenCL的从GPU读取可变大小结果缓冲区

我有一个搜索的OpenCL 1.1算法与数据量小行之有效的: 1)打造的 inputData 数组,并将其传递到GPU 2)创建一个非常大的 resultData 容器(如200000 * sizeof的(cl_uint)),并通过过这个 3)创建 resultSize 容器(inited零),它可通过原子操作访问的(至少我想这) 在我的一名工人有了一个结果是将复制到在 resultDat ..
发布时间:2016-08-24 15:39:48 C/C++

OpenCL的有效的方式来组下三角矩阵

我敢肯定有人遇到过这个问题之前,我基本上都在尺寸2D优化电网N×M的,与约束n_i< = m_i,即我只想计算的下三角部分的对矩阵。此刻,我天真地只实现并购工作组A N本地组的所有N×M的组合(然后用localGroupID和workGroupID识别对),然后返回-inf如果约束无法保存计算。 但有一个更好的办法来设置线程和索引他们,所以我只需要生成的(NXM)/ 2个线程,而不是完整的 ..
发布时间:2016-08-24 13:43:06 C/C++开发

复制多分支树GPU内存

我有节点的树,我试图把它复制到GPU内存。节点如下: 结构节点 { 字符*键; INT ChildCount; 节点*儿童; } 和我的复制功能如下:无效CopyTreeToDevice(节点* node_s,节点* node_d) { //设备及复印件主机节点上分配节点 cudaMalloc((无效**)及node_d,sizeof的(节点)); ..
发布时间:2016-08-24 13:27:14 C/C++

OpenCL的结构值在CPU正确的,但不能在GPU

我有一个文件至极一个结构是由主机code和内核纳入 typedef结构{ 浮法X,Y,Z, dir_x,dir_y,dir_z; INT半径; } WorklistStruct; 我建立这个结构在​​我的C ++的主机code,并通过缓冲将其传递给OpenCL的内核。 如果我选择的CPU设备计算,我将得到以下结果:的printf(“项目:[%F,%F,% ..
发布时间:2016-08-23 11:31:23 C/C++开发

用C的malloc内存损坏

我使用malloc问题。 我有一个名为 jacobi_gpu 至极函数被调用很多次: INT主(INT ARGC,CHAR *的argv []){ / * ... * / INT totalrot = 0; 而(nrot大于0){ ITER ++; nrot = jacobi_gpu(A,Q,TOL,dimmat); tot ..
发布时间:2016-08-23 11:14:55 C/C++

使用带有GPU的随机数

我使用蒙特卡罗模拟的NVIDIA GPU调查。不过,我想用GSL随机数生成器,也是一个并行随机数发生器,如SPRNG。有谁知道这是否可能? 更新 我打得关于使用GPU的RNG。在present还没有一个很好的解决方案。该SDK附带的梅森倍捻机是不是真的适合(我的)蒙特卡罗模拟,因为它需要一个非常长的时间来产生种子。 NAG算法库是更有前途。您可以生成或者分批或单个线程注册护士。但是,只有少数 ..
发布时间:2016-08-19 16:10:39 C/C++

共3个记录在CUDA是很慢

我在CUDA才是最重要的有多少3是C数组并打印它们写了一个小程序。 的#include<&stdio.h中GT; #包括LT&;&ASSERT.H GT; #包括LT&;&cuda.​​h GT; #包括LT&; cstdlib>__global__无效incrementArrayOnDevice的为(int *一,整数N,为int *计数) { INT ID = block ..
发布时间:2016-08-19 15:06:39 C/C++开发

CUDA是硬件需要在编译时?

是与 NVCC 编译CUDA程序必须(在Linux中)安装CUDA的显卡?或者,我们可以随处编译方案,只有在这样的系统上运行? 解决方案 没有,显卡是没有必要的编译。 您甚至不需要一个运行的程序;你可以把它的软件仿真。 更新确定,很显然,SW仿真之后,还没有CUDA 3.0的支持。 ..
发布时间:2016-08-19 13:34:20 C/C++开发

可以CULA程序从设备的内核叫什么名字?

所以我想看看是否我可以使用GPU在同一时间解决了一堆解方程的一小超定系统得到一些显著加速。我的当前算法涉及使用LU分解函数从还具有来回切换GPU和CPU的初始化和运行CULA功能之间的CULA密库。我希望能够从我的CUDA内核调用CULA功能,这样我就不必跳回CPU和数据复制回来。这也让我创建正在对不同的数据集应同时解决多个系统多个线程。我的问题是,我可以从设备的功能调用CULA的功能呢?我知道这 ..
发布时间:2016-08-19 00:27:05 C/C++

如果是CUDA的__shared__内存有用吗?

是否有人可以帮助我了解如何使用共享内存一个很简单的例子吗?包含在CUDA C语言编程指南的例子似乎不相关的细节混乱。 例如,如果我一个大数组复制到设备全局内存,并希望以方的每个元素,怎么能共享内存可用于加快这?或者是不是在这种情况下,有用吗? 解决方案 在你提到的具体情况,共享内存是没有用的,原因如下:每个数据元素只能使用一次。对于共享内存是有用的,你必须使用传输到共享内存几次数据,用良 ..
发布时间:2016-08-18 22:38:49 C/C++