gpu相关内容
我已实施此代码: http://www.cuvilib.com/Reduction.pdf以计算矩阵元素的和。 但是在GPU中它比CPU慢得多。 我有i7处理器和NVIDIA GT 540M显卡卡。 它应该是那种方式还是别的什么? 编辑:我使用上述版本3代码在Ubuntu 13.04和我编译它使用Eclipse Nsight。矩阵的大小为2097152个元素。它在3.6 m
..
大多数论文显示了翻牌/ Gflops并为其CUDA内核实现了带宽。我还读了关于stackoverflow的答案以下问题: 如何评估CUDA性能? 如何计算内核的Gflops 在程序中计算FLOPS / GFLOPS - CUDA 如何计算CUDA内核实现的带宽 大多数东西似乎确定,但仍然不让我感觉舒服在计算这些东西。谁能写一个简单的CUDA内核?然后给出deviceQ
..
标题可能比我的实际问题更具体,虽然我相信回答这个问题会解决一个更一般的问题,这是:如何减少高延迟(〜700周期),来自GPU中的随机(但合并)全局存储器访问。 一般来说,如果访问具有合并载入的全局内存(例如,我读取128个连续字节),但是在合并访问之间具有非常大的距离(256KB-64MB)一个获得高TLB(翻译后备缓冲器)丢失率。此高TLB未命中率是由于在TLB查找表中使用的存储器页的有限
..
以下代码没有可能导致其在CPU或GPU上运行的信息。我不知道“reduce”操作在哪里执行? #include ... //创建迭代器 thrust :: counting_iterator第一(10); thrust :: counting_iterator last
..
我正在尝试实现基于共享内存的矩阵乘法内核,如CUDA C编程指南中所述。以下是内核: __global__ void matrixMultiplyShared(float * A,float * B,float * C, int ARows,int AColumns, int BRows,int BColumns, int CRows,int CColumns){ float *
..
让 p 是第一组位置的矩阵,其中每一行给出特定点的坐标。类似地,让 q 是第二组位置的矩阵,其中每行给出特定点的坐标。 然后,欧式距离成对平方公式为: k i,j)=(p(i,:) -q(j,:))*(p(i,:) -q(j,:)), / pre> 其中 p(i,:)表示 i p 的行, p'表示 p 。 我想在支持CUDA的GPU(NVidia Tesla
..
我在ASUS笔记本电脑上在Wwindows 7操作系统上使用NVIDIA的GeForce GTX 480 GPU。我已经为CUDA 4.2配置了Visual Studio 2010。如何配置OpenCL为nvidia的gpu在visual studio 2010? 可以通过任何方式使用“CUDA工具包(CUDA 4.2)”和“nvidia的gpu计算sdk”来编程OpenCL吗?如果是,那么
..
由于Thrust库存在一些性能问题(请参见这个页面的更多细节),我计划重新考虑一个CUDA应用程序使用CUB而不是Thrust。具体来说,替换thrust :: sort_by_key和thrust :: inclusive_scan调用)。在我的应用程序中的一个特定的点,我需要通过键排序3数组。这是我这样做与推力: thrust :: sort_by_key(key_iter,key_i
..
我正在测量GPU上的峰值单精度触发器,因为我正在修改PTX文件以对寄存器执行连续的MAD指令。不幸的是,编译器删除所有的代码,因为它实际上没有什么有用的,因为我不执行任何加载/存储的数据。是否有编译器标志或编译指令添加到代码,以便编译器不会碰它? 谢谢。 解决方案 我不认为有任何方法来关闭这样的优化在编译器。您可以通过添加代码来存储您的值,并将该代码包装在总是false的条件语句中来
..
无论我如何重新安装CUDA驱动程序和工具包,在键入gpuDevice()时,它总是显示: CUDADevice具有属性: 名称:'Quadro K2000M' 索引:1 ComputeCapability:'3.0' SupportsDouble:1 DriverVersion:6.5000 ToolkitVersion:5.5000 MaxThreadsPerBlo
..
我在参考评论时遇到一些困难,无法理解批量载入。为了计算像素中的卷积,尺寸为5的掩模必须以该特定像素为中心。图像被分成图块。应用卷积掩码之后的这些瓦片是大小为 TILE_WIDTH * TILE_WIDTH 的最终输出瓦片。对于属于输出瓦片的边界的像素,当该瓦片属于图像的边界时,掩模必须从相邻瓦片借用一些像素。否则,这些借用值将分配为零。这两个步骤描述在 if(srcY> = 0&& src
..
当我在GPU上划分2个浮点数时,我得到.196405。当我在CPU上划分,我得到.196404。使用计算器的acutal值为.196404675。 解决方案 如果对另一个答案提出意见,为什么期望从CPU和GPU上运行浮点计算得到相同的结果是不现实的。它比那更强大:你不能假设当相同的源代码是针对不同的目标架构(例如x86或x64)或不同的优化级别编译时,FP结果将是相同的。 事实上,如
..
如果您的工作项目在波前执行,并且有一个条件,例如: if(x){ ... } else { .... } 工作项执行什么?是这样的情况,其中波前中的所有工作项将执行第一分支(即 x == true )。如果没有x为false的工作项,那么跳过其余的条件语句? 如果一个工作项采用备用路径会发生什么。我告诉所有工作项将执行备用路径(因此执行两个路径?)
..
我有一个关于GPU中分支预测的问题。据我所知,在GPU中,他们做分支的预测。 例如,我有一个这样的代码: if C) A else B 40个周期,B需要50个周期来完成执行,如果假设一个翘曲,A和B都被执行,那么总共需要90个周期来完成这个分支吗?或者它们与A和B重叠,即,当A的一些指令被执行时,然后等待存储器请求,然后执行B的一些指令,然后等待存储器
..
有时,我的CUDA程序中的错误导致桌面图形中断(在Windows中)。通常,屏幕保持有些可读性,但是当图形改变时,例如拖动窗口时,会出现大量的半随机彩色像素和小块。 通过更改桌面分辨率来重置GPU和驱动程序,但这没有帮助。我找到的唯一的修复是重新启动计算机。 有没有程序或一些技巧,我可以使用驱动程序和GPU重置而不重新启动? 背景: 我有1.0,1.1,1.3和2.0卡,但
..
我知道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程序设
..
我需要在我的应用程序中进行双精度计算。根据我在google上发现的,我应该添加一个标志“-arch sm_13”或“-arch sm_20”。 Q1:“-arch sm_13” “-arch sm_13”和“-arch sm_20”之间的性能有什么不同吗? $ b b 我的GPU:GTX 570。 谢谢。 解决方案 SM表示Streaming Multiproces
..
我正在调查使用nvidia GPU进行蒙特卡罗模拟。然而,我想使用gsl随机数发生器和一个并行随机数发生器如SPRNG。有人知道这是否可能? 更新 关于使用GPU的RNG。目前还没有一个很好的解决方案。随SDK提供的Mersenne Twister不适合(我的)蒙特卡罗模拟,因为它需要花费非常长的时间来生成种子。 NAG库更有前途。您可以批量或单个线程生成RN。但是,目前只支
..
我想将我的技能扩展到GPU计算。我熟悉光线跟踪和实时图形(OpenGL),但下一代图形和高性能计算似乎在GPU计算或类似的东西。 我目前在家庭计算机上使用AMD HD 7870显卡。我可以为此编写CUDA代码吗? (我的直觉是没有,但由于Nvidia发布了编译器二进制文件,我可能是错误的)。 第二个更一般的问题是,我从哪里开始GPU计算?我确定这是一个常被问到的问题,但我看到的最好的是
..
我写了一个cuda程序,我在ubuntu上测试它作为一个虚拟机。这是因为我有Windows 7,我不想安装ubuntu作为辅助操作系统,我需要使用一个linux操作系统进行测试。 我的问题是:虚拟机会限制gpu资源吗?如果我在我的主要操作系统下运行它,而不是在虚拟机上运行,我的cuda代码会更快吗? 解决方案 虚拟机模拟图形设备,因此你不能访问真正的GPU。这是因为虚拟化处理多个VM
..