我search了很多地方,但我得到的是如何安装它,而不是如何validation它被安装。 我可以validation我的NVIDIA驱动程序已安装,并且安装了CUDA,但是我不知道如何validationCuDNN是否已安装。 帮助将不胜感激,谢谢! PS。 这是为了实现一个caffe。 目前一切都没有启用CuDNN的工作。
我的应用程序从networking获取数据并在场景中绘制(场景使用手工制作的OpenGL引擎)。 它工作几个小时。 当我不使用我的桌面时,由于显示器电源pipe理器信号(dpms),我的显示器closures。 然后,当我触摸鼠标或键盘时,显示器打开,应用程序挂起(X也挂起)。 如果我做了xset -dmps操作系统不使用dpms,并且应用程序工作稳定。 这些问题发生在Centos 6和Archlinux中,但是当我在Ubuntu 12.10下运行应用程序时,它工作的很好! 我尝试了不同的NVidia驱动程序。 没有效果。 我试图用SSH来远程login,并使用gdb连接到进程。 监视器打开后,我无法在进程表中find应用程序。 如何诊断问题? 显示器closures/打开时会发生什么(在OpengGL环境中)? 使用dpms时,Ubuntu会做些特别的事吗? 我们猜测问题的原因! 当显示器closures时,我们失去了OpenGL上下文。 监视器唤醒时,应用程序挂起(无上下文)。 由于不同的显示器连接,视操作系统而异的行为:Kubuntu显示器连接VGA电缆。 所以(可能)它对X行为没有影响。
我刚接触CUDA范例。 我的问题是确定每个块的线程数,每个网格块。 有一些艺术和审判玩这个? 我发现,很多例子都是为这些事情select了一个看似随意的数字。 我正在考虑一个问题,我可以将任何大小的matrix传递给乘法的方法。 因此,C的每个元素(如在C = A * B中)将由单个线程计算。 在这种情况下,你将如何确定线程/块,块/网格?
CUDA核心,stream式多处理器和CUDA块和线程模型之间的关系是什么? 什么被映射到什么和什么是并行的,以及如何? 什么是更有效率,最大限度的块数或线程数? 我目前的理解是每个多处理器有8个cuda核心。 而且每个cuda核心一次可以执行一个cuda块。 并且该块中的所有线程都在该特定内核中被串行执行。 它是否正确?
我不是一个3D或HPC的家伙,但我已经负责对这些领域进行一些可能的HPC应用的研究。 阅读nVidia Quadro和Geforce卡之间的基准testing,比较和规格,似乎对于类似的代卡: Quadro的价格是Geforce的2倍至3倍 硬件方面,差异并不大 在基准testing(3ds Max,Maya等)方面,Quadro显卡比Geforce显卡要好得多 有谁知道什么是确切和精确的技术差异,可以导致这样的更好的performance? 我的猜测(以及通常可以在网上读到的东西),因为硬件是类似的规格,是所有的驱动程序。 如果是这样的话,那么Quadro驱动程序提供的function是3ds Max和其他程序员利用的function? 当然,我对营销不感兴趣:更高的商业价值,专业导向,更好的支持,更好的质量保证等等。
我已经解决了这个问题,但是我把它贴出来留给后人。 我遇到了双监视器系统上DataGridView的一个非常奇怪的问题。 这个问题performance为一个极其缓慢的控制重绘( 像完整重绘30秒 ),但只有当它在我的屏幕之一。 另一方面,重绘速度很好。 我有一个nVidia 8800 GT与最新的非testing版驱动程序(175.东西)。 这是一个驱动程序错误? 我会把它留在空中,因为我必须忍受这个特殊的configuration。 (尽pipe…不会发生在ATI卡上) 油漆速度与单元格内容无关,而且自定义绘图根本无法改善性能 – 即使只是绘制一个坚实的矩形。 后来我发现在表单上放置一个ElementHost(来自System.Windows.Forms.Integration命名空间)可以解决问题。 它不必被搞砸,它只需要是DataGridView所在窗体的子项。 只要Visible属性为true,就可以将其调整为(0,0)。 不想明确地将.Net 3 / 3.5依赖项添加到我的应用程序中,我创build了一个方法来在运行时(如果可以的话)使用reflection来创build此控件。 它起作用了,至less它在没有所需库的机器上优雅地失败 – 它只是变得很慢。 这个方法也可以让我在应用程序运行的时候进行修复,使得更容易看到WPF库在我的表单上改变了什么(使用Spy ++)。 经过大量的反复试验之后,我注意到在控件本身(而不是表单)上启用双缓冲可以纠正问题! 所以,您只需要基于DataGridView创build一个自定义类,以便启用它的DoubleBuffering。 而已! class CustomDataGridView: DataGridView { public CustomDataGridView() { DoubleBuffered = true; } } 只要我所有的网格实例都使用这个定制版本,一切都很好。 如果我遇到由于无法使用子类解决scheme(如果我没有代码)而导致的情况,我想我可以尝试将该控件注入到表单中:) 会更有可能尝试使用reflection从外部强制DoubleBuffered属性,以再次避免依赖 )。 很遗憾,这么一个简单的东西吃了这么多的时间…
我一直在阅读CUDA和OpenCL的编程指南,我无法弄清楚银行冲突是什么。 他们只是潜心钻研如何解决问题,而没有详细阐述这个问题。 有人能帮我理解吗? 如果帮助是在CUDA / OpenCL的环境下,或者只是在计算机科学中的银行冲突,我没有任何偏好。
我想听听有两种编码经验的人。 我自己,我只有NVIDIA的经验。 NVIDIA CUDA似乎比竞争对手更受欢迎。 (只要在这个论坛上统计问题标签,'cuda'胜过'opencl'3:1,'nvidia'胜过'ati'15:1,根本没有'ati-stream'的标签)。 另一方面,根据维基百科,ATI / AMD卡应该有更多的潜力,特别是每美元。 目前市场上最快的NVIDIA显卡,GeForce 580(500美元),被评为1.6单精度TFlops。 AMD Radeon 6970可以有370美元,它的额定2.7 TFlops。 580在772 MHz有512个执行单元。 6970在880 MHz有1536个执行单元。 AMD对于NVIDIA的纸张优势有多逼真,而且在大多数GPGPU任务中都可能实现? 整数任务会发生什么?
线程如何组织成由GPU执行?
我想测量GPU的时间内核,如何在NVIDIA CUDA中测量它? 例如 __global__ void kernelSample() { some code here get start time some code here get stop time some code here }