其它硬件开发

Caffe |检查失败:错误== cudaSuccess(2对0)内存不足

我想在Caffe上训练一个网络。我有512x640的图像大小。批量大小为1.我尝试实施 FCN-8s 。 我目前在具有4GB GPU内存的Amazon EC2实例(g2.2xlarge)上运行此操作。但是当我运行求解器时,它会立即抛出一个错误 检查失败:error == cudaSuccess(2对0)内存不足 ***检查故障堆栈跟踪:*** 中止(内核转储) ..

如何使用Mipmapping将CUDA生成的PBO复制到Texture

我尝试将PBO复制到启用了自动映射映射的纹理中,但是似乎只有顶级纹理被生成(换句话说,没有发生mip映射)。 我正在使用创建一个PBO //生成称为PBO(像素缓冲对象)的缓冲区ID glGenBuffers(1,pbo); //使其成为当前UNPACK缓冲区 glBindBuffer(GL_PIXEL_UNPACK_BUFFER,* pbo); //为缓冲区分配数据。 ..
发布时间:2017-03-04 16:08:29 其它硬件开发

VS2010编译器和cuda错误:链接规范不兼容以前的“hypot”

当我尝试在64位Windows 7上使用VS 2010在Debug 64位配置中构建我的项目时遇到此错误以及其他两个错误。 错误:连接规范与math.h中之前的“hypot”不兼容第161行 错误:连接规范与math.h中之前的“hypotf”不兼容第161行 错误:function“abs(long long) “已经在math_functions.h line 534中定义了 ..
发布时间:2017-03-04 16:08:18 其它硬件开发

设备内存刷新cuda

我正在运行一个C程序,我调用两次cuda主机函数。我想清除这两个调用之间的设备内存。有没有办法我可以冲刷GPU设备内存?我在计算能力为2.0的特斯拉M2050上 解决方案 如果你只想要记忆, $ c> cudaMemset 可能是最简单的方法。例如: const int n = 10000000; const int sz = sizeof(float)* n; float ..
发布时间:2017-03-04 16:07:50 其它硬件开发

在CUDA中分配设备变量时出现问题

我无法尝试为设备变量分配值,然后将其复制到主机变量。 我从d_test和h_test = 0.0开始。我有一个简单的内核将设备变量d_test设置为1.0。然后我将它复制到宿主变量h_test并打印。问题是,当我打印我得到h_test = 0.0。我究竟做错了什么?以下是代码: // - * - mode:C - * - #include ..
发布时间:2017-03-04 16:07:13 其它硬件开发

为什么CUDA内存复制速度会这样,一些不断的驱动程序开销?

在我的旧GeForce 8800GT上使用CUDA的内存时,我总是有一个奇怪的0.04毫秒的开销。我需要转移〜1-2K到我的设备的恒定记忆,使用它的数据,并从设备只获得一个浮动值。 我有一个典型的使用GPU计算的代码: //分配所有需要的内存:pinned,device global for(int i = 0; i { //做一些重的cpu逻辑(约0.005 ms长) c ..
发布时间:2017-03-04 16:06:51 其它硬件开发

在PyCUDA中打印消息

在简单的CUDA程序中,我们可以通过包括cuPrintf.h的线程来打印消息,但在PyCUDA中不会解释任何地方。 解决方案 在计算能力2.0和更高版本的GPU上, cuPrintf.h 不鼓励使用CUDA的内置printf()。要使用它,只需 #include 并调用 printf()就像在主机上。 PyCUDA wiki有一个具体示例这。 ..
发布时间:2017-03-04 16:05:48 其它硬件开发

如何使用Thrust从int2数组计算平均值

我试图计算包含点(x,y)的某个数组的平均值。 可以使用推力来找到表示为(x,y)的平均点,点?当每个单元包含该点的绝对位置时, i也可以将该数组表示为 thrust :: device_vector ,意味着 i * numColumns + j ,但我不确定平均数字是否代表平均单元格。 谢谢! 解决方案 #include #incl ..
发布时间:2017-03-04 16:05:37 其它硬件开发

Thrust如何知道如何自动配置它启动的内核?

Thrust能够从编码器中隐藏各种细节,并且声称Thrust在某种程度上相对于系统规范设置参数。 Thrust如何选择最佳的参数化,以及如何在不同的机器中处理各种代码?什么是Thrust的实现这样一个通用库的方法? 解决方案 Thrust使用启发式尝试最大化CUDA的潜在占用 启发式Thrust使用的独立版本如下: https://github.com/jaredhoberoc ..
发布时间:2017-03-04 16:05:25 其它硬件开发

有没有CUDA智能指针?

如果没有,当抛出异常时,释放 cudaMalloc ed内存的标准方法是什么? (注意,我无法使用Thrust。) 解决方案 您可以使用 RAII 成语,并将您的 cudaMalloc()和 cudaFree / code>分别调用你的对象的构造函数和析构函数。 一旦异常被抛出,你的析构函数将被释放分配的内存。 / p> 如果你将这个对象包装到一个智能指针中(或者使它像一个指针 ..
发布时间:2017-03-04 16:05:12 其它硬件开发

无法在Ubuntu 12.04上安装cuda 5示例

我安装cuda 5,但我无法安装其样本 缺少必需的库libglut.so 我查找anwsers,有人说 sudo ln -s /usr/lib/x86_64-linux-gnu/libglut.so /usr/lib/libglut.so 用于x64架构。 解决方案 为了确保您安装了GLUT,您应该尝试 sudo apt-ge ..
发布时间:2017-03-04 16:04:57 其它硬件开发

driver.Context.synchronize() - 什么要考虑 - -a清理操作失败

我有此代码(由于回答而修改)。 信息 32字节堆栈帧,0字节溢出存储,0字节溢出加载 ptxas信息:使用46个寄存器,120字节cmem [0],176字节 cmem [2 ],76个字节cmem [16] 我不知道还有什么要考虑,例如,当我用Rs = 10000和Rp = 100000运行代码,其中block =(128,1,...)的时候,我们可以使用“numPoi ..
发布时间:2017-03-04 16:04:27 其它硬件开发

Nvidia视觉工作室Nsight CPU和GPU调试

NVIDIA Nsight Visual Studio Edition似乎不能同时调试CPU(主机代码)和GPU(CUDA代码)。使用Nsight Eclipse版本(或cuda-gdb),这很简单,例如,您可以从主机执行“步入”CUDA内核。如何使用Visual Studio? 解决方案 从 Nsight手册 它说 使用单独的Visual Studio实例来调试 目标应用程 ..

我怎么能告诉PyCUDA哪个GPU使用?

我的机器中有两个NVidia卡,两个都有CUDA功能。当我运行示例脚本以开始使用PyCUDA,如下所示: http://documen.tician.de/pycuda/ 我得到错误 nvcc致命:没有为选项'gpu-architecture'定义值'sm_30' 我的计算GPU是计算能力3.0,所以sm_30应该是nvcc编译器的正确选项。我的图形GPU只有CC 1.2, ..
发布时间:2017-03-04 16:03:58 其它硬件开发

与CUDA PTX代码和寄存器存储器混淆

:) 虽然我试图管理我的内核资源,我决定看看PTX,但有一些事情,我不明白。这是一个非常简单的内核我写的: __ global__ void foo(float * out,float * in,uint32_t n) { uint32_t idx = blockIdx.x * blockDim.x + threadIdx.x; uint32_t one = 5; out ..
发布时间:2017-03-04 16:03:47 其它硬件开发

2D纹理的节距对齐

2D纹理是CUDA在图像处理应用程序中的一个有用特性。要将螺距线性存储器绑定到2D纹理,存储器必须对齐。 cudaMallocPitch 是对齐内存分配的好选择。在我的设备上, cudaMallocPitch 返回的间距是512的倍数,即内存是512字节对齐。 设备的实际对齐要求由 cudaDeviceProp :: texturePitchAlignment 决定,它在我的设备上为32个字 ..
发布时间:2017-03-04 16:02:46 其它硬件开发

几个线程在相同的全局内存位置写入相同的值

这个问题与这一个,但我属于CUDA世界。 我在内核中有几个线程可以写入相同的值相同的全局内存位置。这已经工作正常,但恐怕它可能是假的,到目前为止,我只是幸运。 是否有任何内存损坏的可能性或我的工作流程中的意外行为(由于数据竞争,缓存同步等)? 解决方案 我在内核中有几个线程可以在同一个全局内存位置。 与某些评论相反,这是安全的。通过安全,我的意思是写入的值将显示在该全 ..
发布时间:2017-03-04 16:02:24 其它硬件开发

在Cuda中实现Max Reduce

我一直在学习Cuda,我仍然掌握并行性。我现在遇到的问题是对值数组实现max reduce。这是我的内核 __ global__ void max_reduce(const float * const d_array, float * d_max, const size_t elements) { extern __shared__ float shared []; int ..
发布时间:2017-03-04 16:02:07 其它硬件开发