gpu相关内容

查找最小的GPU比CPU慢

我已实施此代码: http://www.cuvilib.com/Reduction.pdf以计算矩阵元素的和。 但是在GPU中它比CPU慢得多。 我有i7处理器和NVIDIA GT 540M显卡卡。 它应该是那种方式还是别的什么? 编辑:我使用上述版本3代码在Ubuntu 13.04和我编译它使用Eclipse Nsight。矩阵的大小为2097152个元素。它在3.6 m ..
发布时间:2017-03-04 15:05:05 其它硬件开发

计算实现的带宽和触发器/ Gflops,并评估CUDA内核性能

大多数论文显示了翻牌/ Gflops并为其CUDA内核实现了带宽。我还读了关于stackoverflow的答案以下问题: 如何评估CUDA性能? 如何计算内核的Gflops 在程序中计算FLOPS / GFLOPS - CUDA 如何计算CUDA内核实现的带宽 大多数东西似乎确定,但仍然不让我感觉舒服在计算这些东西。谁能写一个简单的CUDA内核?然后给出deviceQ ..
发布时间:2017-03-04 15:03:03 其它硬件开发

如何避免CUDA GPU中的TLB缺失(和高全局内存回放开销)?

标题可能比我的实际问题更具体,虽然我相信回答这个问题会解决一个更一般的问题,这是:如何减少高延迟(〜700周期),来自GPU中的随机(但合并)全局存储器访问。 一般来说,如果访问具有合并载入的全局内存(例如,我读取128个连续字节),但是在合并访问之间具有非常大的距离(256KB-64MB)一个获得高TLB(翻译后备缓冲器)丢失率。此高TLB未命中率是由于在TLB查找表中使用的存储器页的有限 ..
发布时间:2017-03-04 14:59:10 其它硬件开发

计算GPU上的平方欧几里德距离矩阵

让 p 是第一组位置的矩阵,其中每一行给出特定点的坐标。类似地,让 q 是第二组位置的矩阵,其中每行给出特定点的坐标。 然后,欧式距离成对平方公式为: k i,j)=(p(i,:) -q(j,:))*(p(i,:) -q(j,:)), / pre> 其中 p(i,:)表示 i p 的行, p'表示 p 。 我想在支持CUDA的GPU(NVidia Tesla ..
发布时间:2017-03-04 14:53:39 C/C++开发

CUB(CUDA UnBound)等效于thrust :: gather

由于Thrust库存在一些性能问题(请参见这个页面的更多细节),我计划重新考虑一个CUDA应用程序使用CUB而不是Thrust。具体来说,替换thrust :: sort_by_key和thrust :: inclusive_scan调用)。在我的应用程序中的一个特定的点,我需要通过键排序3数组。这是我这样做与推力: thrust :: sort_by_key(key_iter,key_i ..
发布时间:2017-03-04 14:50:14 C/C++开发

完全禁用NVCC的优化

我正在测量GPU上的峰值单精度触发器,因为我正在修改PTX文件以对寄存器执行连续的MAD指令。不幸的是,编译器删除所有的代码,因为它实际上没有什么有用的,因为我不执行任何加载/存储的数据。是否有编译器标志或编译指令添加到代码,以便编译器不会碰它? 谢谢。 解决方案 我不认为有任何方法来关闭这样的优化在编译器。您可以通过添加代码来存储您的值,并将该代码包装在总是false的条件语句中来 ..
发布时间:2017-03-04 14:38:13 其它硬件开发

gpuDevice()工具包版本总是5.5

无论我如何重新安装CUDA驱动程序和工具包,在键入gpuDevice()时,它总是显示: CUDADevice具有属性: 名称:'Quadro K2000M' 索引:1 ComputeCapability:'3.0' SupportsDouble:1 DriverVersion:6.5000 ToolkitVersion:5.5000 MaxThreadsPerBlo ..
发布时间:2017-03-04 14:37:37 其它硬件开发

将数据上传到卷积内核的共享内存中

我在参考评论时遇到一些困难,无法理解批量载入。为了计算像素中的卷积,尺寸为5的掩模必须以该特定像素为中心。图像被分成图块。应用卷积掩码之后的这些瓦片是大小为 TILE_WIDTH * TILE_WIDTH 的最终输出瓦片。对于属于输出瓦片的边界的像素,当该瓦片属于图像的边界时,掩模必须从相邻瓦片借用一些像素。否则,这些借用值将分配为零。这两个步骤描述在 if(srcY> = 0&& src ..
发布时间:2017-03-04 14:35:13 其它硬件开发

GPU上的浮点数除以CPU上的浮点数

当我在GPU上划分2个浮点数时,我得到.196405。当我在CPU上划分,我得到.196404。使用计算器的acutal值为.196404675。 解决方案 如果对另一个答案提出意见,为什么期望从CPU和GPU上运行浮点计算得到相同的结果是不现实的。它比那更强大:你不能假设当相同的源代码是针对不同的目标架构(例如x86或x64)或不同的优化级别编译时,FP结果将是相同的。 事实上,如 ..
发布时间:2017-03-04 14:28:08 其它硬件开发

在GPU编程中使用条件语句时,工作项执行什么?

如果您的工作项目在波前执行,并且有一个条件,例如: if(x){ ... } else { .... } 工作项执行什么?是这样的情况,其中波前中的所有工作项将执行第一分支(即 x == true )。如果没有x为false的工作项,那么跳过其余的条件语句? 如果一个工作项采用备用路径会发生什么。我告诉所有工作项将执行备用路径(因此执行两个路径?) ..
发布时间:2017-03-04 14:26:42 其它硬件开发

GPU上的分支预测

我有一个关于GPU中分支预测的问题。据我所知,在GPU中,他们做分支的预测。 例如,我有一个这样的代码: if C) A else B 40个周期,B需要50个周期来完成执行,如果假设一个翘曲,A和B都被执行,那么总共需要90个周期来完成这个分支吗?或者它们与A和B重叠,即,当A的一些指令被执行时,然后等待存储器请求,然后执行B的一些指令,然后等待存储器 ..
发布时间:2017-03-04 14:26:21 其它硬件开发

在CUDA错误后重置GPU和驱动程序

有时,我的CUDA程序中的错误导致桌面图形中断(在Windows中)。通常,屏幕保持有些可读性,但是当图形改变时,例如拖动窗口时,会出现大量的半随机彩色像素和小块。 通过更改桌面分辨率来重置GPU和驱动程序,但这没有帮助。我找到的唯一的修复是重新启动计算机。 有没有程序或一些技巧,我可以使用驱动程序和GPU重置而不重新启动? 背景: 我有1.0,1.1,1.3和2.0卡,但 ..
发布时间:2017-03-04 14:25:52 其它硬件开发

一个GPU的每个多处理器有多少“CUDA核心”?

我知道Fermi架构之前的设备在单个多处理器中有8个SP。在费米架构中,计数是否相同? 解决方案 答案取决于CUDA设备的Compute Capability属性。数字为: 计算能力 8 CUDA核心/ SM CC == 2.0 - > 32 CUDA cores / SM CC == 2.1 - > 48 CUDA cores / SM 请参阅 CUDA的附录G C程序设 ..
发布时间:2017-03-04 14:21:59 其它硬件开发

使用随机数与GPU

我正在调查使用nvidia GPU进行蒙特卡罗模拟。然而,我想使用gsl随机数发生器和一个并行随机数发生器如SP​​RNG。有人知道这是否可能? 更新 关于使用GPU的RNG。目前还没有一个很好的解决方案。随SDK提供的Mersenne Twister不适合(我的)蒙特卡罗模拟,因为它需要花费非常长的时间来生成种子。 NAG库更有前途。您可以批量或单个线程生成RN。但是,目前只支 ..
发布时间:2017-03-04 14:17:43 其它硬件开发

是否可以在AMD GPU上运行CUDA?

我想将我的技能扩展到GPU计算。我熟悉光线跟踪和实时图形(OpenGL),但下一代图形和高性能计算似乎在GPU计算或类似的东西。 我目前在家庭计算机上使用AMD HD 7870显卡。我可以为此编写CUDA代码吗? (我的直觉是没有,但由于Nvidia发布了编译器二进制文件,我可能是错误的)。 第二个更一般的问题是,我从哪里开始GPU计算?我确定这是一个常被问到的问题,但我看到的最好的是 ..
发布时间:2017-03-04 14:17:02 其它硬件开发

在VMware上的cuda程序

我写了一个cuda程序,我在ubuntu上测试它作为一个虚拟机。这是因为我有Windows 7,我不想安装ubuntu作为辅助操作系统,我需要使用一个linux操作系统进行测试。 我的问题是:虚拟机会限制gpu资源吗?如果我在我的主要操作系统下运行它,而不是在虚拟机上运行,​​我的cuda代码会更快吗? 解决方案 虚拟机模拟图形设备,因此你不能访问真正的GPU。这是因为虚拟化处理多个VM ..
发布时间:2017-03-04 14:16:49 其它硬件开发