与普通单处理器内核相比,CUDA或OpenCL代码上的算法运行速度有多快?(考虑到算法是针对CPU和GPU目标编写和优化的).
我知道这取决于显卡和CPU,但是说,NVIDIA最快的GPU之一和英特尔i7处理器的(单核)?
我知道这也取决于算法的类型.
我不需要严格的答案,但经验丰富的例子如下:对于使用双精度浮点的图像处理算法和每个像素10次操作需要前5分钟,现在使用此硬件在x秒内运行.
为什么我的内核产生奇怪的错误消息或"0"只搜索结果我在SO上发现这个答案,提到在nvidia gpus上运行内核的超时为5秒?我用谷歌搜索结果,但我找不到确认来源或更多信息.
你怎么知道的?
对于运行时间长的内核,timout会导致奇怪的行为吗?
谢谢!
我已经设计了一个用于iPad游戏的学习AI,但它的原型是用matlab编写的.我需要执行以下几个操作:(大写表示矩阵)
A = B > c;
A = B * C;
A = B' * C;
A = B .* C;
A = B - C;
Run Code Online (Sandbox Code Playgroud)
我的一些矩阵很大(2601 x 100).在GPU上运行这些操作可以显着提高此操作的性能.是否有一个线性代数库比Accelerate的BLAS更合适?BLAS仅支持最多4x4矩阵.
iphone gpu linear-algebra gpu-programming matrix-multiplication
我刚刚发现了Project Sumatra,旨在将JVM引入显卡.从他们的网页,这包括Java 的自定义编译器(称为Rootbeer).
这是一个好消息,但是,如果这意味着苏门答腊项目也适用于其他JVM语言,我想听听对项目内部有更多了解的人的意见?是否有可能直接从Scala或Clojure发出Aparapi电话?或者您是否必须在Java中开发一些核心功能,然后通过其他JVM语言访问它?
我正在开展一个旨在控制双极人形机器人的项目.不幸的是,我们拥有非常有限的硬件资源(RB110板和它的迷你PCI图形卡).我打算将图像处理任务从CPU移植到图形卡处理器,但之前从未做过......我建议使用OpenCV,但似乎不可能,因为我们的图形卡处理器(Volari Z9s)不受框架支持.然后我在Linux Journal上发现了一篇有趣的帖子.作者使用OpenGL处理从v4l设备检索到的帧.
我对硬件API和OpenGL/OpenCV之间的关系有点困惑.为了利用GPU,硬件是否需要通过图形编程框架(OpenGL/OpenCV)来解决?我在哪里可以找到这样的API?
我搜索了很多关于我的硬件的信息,不幸的是供应商(XGI技术)似乎已经灭绝......
我正在研究cudaDecodeD3D9示例以了解CUDA的工作原理,并在编译时从.cu文件生成.ptx文件.据我所知,这个.ptx文件是一个中间表示,可以为任何特定的GPU及时编译.该示例使用类cudaModuleMgr通过cuModuleLoadDataEx加载此文件.
.ptx文件是文本格式,我可以看到它的顶部是我的机器上的一堆硬编码路径,包括我的用户文件夹,即:
.file 1 "C:/Users/******/AppData/Local/Temp/tmpxft_00002abc_00000000-7_NV12ToARGB_drvapi.cudafe2.gpu"
.file 2 "c:\program files (x86)\microsoft visual studio 10.0\vc\include\codeanalysis\sourceannotations.h"
.file 3 "C:/Program Files (x86)/NVIDIA GPU Computing Toolkit/CUDA/v5.0/include\crt/device_runtime.h"
.file 4 "C:/Program Files (x86)/NVIDIA GPU Computing Toolkit/CUDA/v5.0/include\host_defines.h"
.file 5 "C:/Program Files (x86)/NVIDIA GPU Computing Toolkit/CUDA/v5.0/include\builtin_types.h"
.file 6 "c:\program files (x86)\nvidia gpu computing toolkit\cuda\v5.0\include\device_types.h"
.file 7 "c:\program files (x86)\nvidia gpu computing toolkit\cuda\v5.0\include\host_defines.h"
.file 8 "c:\program files (x86)\nvidia gpu computing toolkit\cuda\v5.0\include\driver_types.h"
.file 9 "c:\program files (x86)\nvidia gpu computing toolkit\cuda\v5.0\include\surface_types.h"
.file 10 "c:\program files (x86)\nvidia gpu computing toolkit\cuda\v5.0\include\texture_types.h"
.file …Run Code Online (Sandbox Code Playgroud) 在CUDA 6.5的文档中写道:http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#ixzz3PIXMTktb
5.2.3.多处理器级别
...
- 8L用于计算能力3.x的设备,因为多处理器在一个时钟周期内每次发生一对指令,一次四个经线,如Compute Capability 3.x中所述.
这是否意味着GPU Kepler CC3.0处理器不仅是流水线架构,还是超标量?
流水线 - 这两个序列并行执行(一次执行不同的操作):
超标量 - 这两个序列并行执行(一次执行相同的操作):
目前,我使用默认的64作为seq2seq tensorflow模型的批量大小.什么是最大批量大小,层大小等我可以使用具有12 GB RAM和Haswell-E xeon 128GB RAM的单个Titan X GPU.输入数据将转换为嵌入.以下是我正在使用的一些有用参数,似乎单元格输入大小为1024:
encoder_inputs: a list of 2D Tensors [batch_size x cell.input_size].
decoder_inputs: a list of 2D Tensors [batch_size x cell.input_size].
tf.app.flags.DEFINE_integer("size", 1024, "Size of each model layer.")
Run Code Online (Sandbox Code Playgroud)
那么基于我的硬件,我可以去的最大批量大小,层数,输入大小是多少?目前GPU显示99%的内存被占用.
machine-learning gpu-programming tensorflow recurrent-neural-network
我正在尝试使用cuSOLVER库实现Cholesky分解。我是一名初学者CUDA程序员,并且我一直指定块大小和网格大小,但是我无法找出程序员如何使用cuSOLVER函数显式设置它。
这是文档:http : //docs.nvidia.com/cuda/cusolver/index.html#introduction
QR分解是使用cuSOLVER库实现的(请参见此处的示例:http ://docs.nvidia.com/cuda/cusolver/index.html#ormqr-example1 ),即使在此处也未设置上述两个参数。
总结一下,我有以下问题
Vulkan规范指出:
读取后写入危险仅可以通过执行依赖关系来解决,但是写入后读取和写入后写入危险需要在它们之间包括适当的内存依赖关系。
我认为,WaW也可以仅通过执行障碍来解决。如果我们不打算读取数据,为什么我们需要一个内存屏障来解决WaW危害?