我有一个非常简单的东芝笔记本电脑与i3处理器.另外,我没有任何昂贵的显卡.在显示设置中,我将英特尔(HD)图形视为显示适配器.我打算学习一些cuda编程.但是,我不确定,如果我可以在我的笔记本电脑上这样做,因为它没有任何nvidia的cuda启用GPU.
事实上,我怀疑,如果我有一个GPU o_o
所以,如果有人能告诉我是否可以使用当前配置进行CUDA编程,如果可能的话还让我知道英特尔(HD)图形意味着什么,我将不胜感激?
我是GPU编程的新手.我有一台配有NVIDIA GeForce GT 640卡的笔记本电脑.我面临两难困境,欢迎提出建议.
如果我选择CUDA - Ubuntu或Windows Clearly CUDA更适合Windows,而在Ubuntu上安装可能是一个严重的问题.我见过一些声称在Ubuntu 11.10和Ubuntu 12.04上安装了CUDA 5的博客帖子.但是,我无法让他们工作.此外,标准CUDA教科书更喜欢在Windows域中工作,并且在Unix/Ubuntu安装和工作方面或多或少都是沉默的.
CUDA或OpenCL - 现在这可能比我的第一个问题更棘手!我主要使用CUDA/Nvidia来接触GPGPU项目,但OpenCL可能是开源中的下一个最佳选择,在Ubuntu中安装可能不会成为问题,尽管这里的一些建议最有用.如果我选择OpenCL而不是CUDA,我会牺牲任何功能吗?
任何帮助或建议?
目前,我正在尝试创建一个使用CUDA功能的Java应用程序.CUDA和Java之间的连接工作正常,但我有另一个问题,想问一下,如果我的想法是正确的.
当我从Java调用本机函数时,我将一些数据传递给它,函数计算一些东西并返回结果.是否有可能让第一个函数返回一个引用(指针)到这个结果,我可以传递给JNI并调用另一个用结果进行进一步计算的函数?
我的想法是通过将数据保留在GPU内存中并只是传递对它的引用来减少从GPU复制数据所带来的开销,以便其他函数可以使用它.
经过一段时间的尝试,我想,这应该是不可能的,因为指针在应用程序结束后被删除(在这种情况下,当C函数终止时).它是否正确?或者我只是在C中看到解决方案?
编辑:嗯,稍微扩展问题(或使其更清楚):当函数结束时,JNI本机函数分配的内存是否已释放?或者我可以访问它,直到JNI应用程序结束或我手动释放它?
感谢您的输入 :)
什么是CUDA全局内存事务中的"合并"?经过我的CUDA指南后,我无法理解.怎么做?在CUDA编程指南矩阵示例中,逐行访问矩阵称为"coalesced"或col .. by col ..称为合并?哪个是正确的,为什么?
CUDA核心,流式多处理器和块和线程的CUDA模型之间有什么关系?
什么被映射到什么和什么是并行化以及如何?什么是更有效,最大化块数或线程数?
我目前的理解是每个多处理器有8个cuda核心.并且每个cuda核心都能够一次执行一个cuda块.并且该块中的所有线程在该特定核心中串行执行.
它是否正确?
我尝试在NVIDIA的官方网站上运行示例程序.大多数程序运行顺利,除了少数我收到类似错误消息的地方.我该如何解决这个问题?这是运行名为"MatrixMul"的程序后得到的错误消息示例.
注意:我在Window7x64操作系统上安装了x32和x64 NVIDIA CUDA Toolkit v5.0.
'matrixMul.exe': Loaded 'C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.0\bin\win32\Debug\matrixMul.exe', Symbols loaded.
'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\ntdll.dll', Cannot find or open the PDB file
'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\kernel32.dll', Cannot find or open the PDB file
'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\KernelBase.dll', Cannot find or open the PDB file
'matrixMul.exe': Loaded 'C:\Program Files (x86)\NVIDIA GPU Computing Toolkit\CUDA\v5.0\bin\cudart32_50_35.dll', Binary was not built with debug information.
'matrixMul.exe': Loaded 'C:\Windows\SysWOW64\apphelp.dll', Cannot find or open the PDB file
'matrixMul.exe': Loaded 'C:\Windows\AppPatch\AcLayers.dll', Cannot find or open the PDB file …
Run Code Online (Sandbox Code Playgroud) 我知道这nvidia-smi -l 1
将每秒钟提供一次GPU使用(类似于以下内容).但是,我很欣赏有关Volatile GPU-Util
真正含义的解释.这是使用的SM数量超过总SM数,占用数量还是其他数量?
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 367.48 Driver Version: 367.48 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla K20c Off | 0000:03:00.0 Off | 0 |
| 30% 41C P0 53W / 225W | 0MiB / 4742MiB | 96% Default |
+-------------------------------+----------------------+----------------------+
| 1 Tesla K20c Off | 0000:43:00.0 Off | 0 |
| 36% …
Run Code Online (Sandbox Code Playgroud) 我一直在寻找有关使用C#编写CUDA(nvidia gpu语言)的一些信息.我已经看到了一些库,但似乎它们会增加一些开销(因为p/invokes等).
我正在开发一种具有大量3D图形计算的产品,在很大程度上是最接近的点和范围搜索.一些硬件优化会很有用.虽然我对此知之甚少,但我的老板(没有软件经验)主张FPGA(因为它可以定制),而我们的初级开发人员则主张GPGPU和CUDA,因为它便宜,热门和开放.虽然我觉得我在这个问题上缺乏判断力,但我相信CUDA也是要走的路,因为我担心灵活性,我们的产品仍然处于强劲发展之中.
所以,重新解释这个问题,是否有理由去使用FPGA?或者有第三种选择吗?