Tag: gpu

GPU编程,CUDA或OpenCL?

我是GPU编程的新手。 我有一台配备NVIDIA GeForce GT 640显卡的笔记本电脑。 我面临着两难困境,build议最受欢迎。 如果我去CUDA – Ubuntu或Windows显然,CUDA更适合Windows,而在Ubuntu上安装则是一个严重的问题。 我已经看到一些博客宣称在Ubuntu 11.10和Ubuntu 12.04上安装了CUDA 5。 但是,我一直无法让他们工作。 此外, 标准的CUDA教科书更喜欢在Windows域中工作,在安装和使用Unix / Ubuntu时或多或less都是沉默的。 CUDA或OpenCL – 现在这可能比我的第一个问题更棘手! 我大部分使用CUDA / Nvidia都遇到过GPGPU项目,但OpenCL可能是开源的下一个最佳select,在Ubuntu中安装可能不会成为问题,尽pipe这里的一些build议将是最有用的。 如果我使用OpenCL而不是CUDA,我会牺牲任何function吗? 任何帮助或build议?

使用GPU加速MATLAB代码?

AccelerEyes于2012年12月宣布,它将与Mathworks在GPU代码上合作,并已停止使用MATLAB的产品Jacket: http://blog.accelereyes.com/blog/2012/12/12/exciting-updates-from-accelereyes/ 不幸的是,他们不再销售Jacket许可证。 据我所知,基于ArrayFire的Jacket GPU Array解决scheme比由MATLAB提供的gpuArray解决scheme快得多。 我开始使用gpuArray,但是我发现许多函数执行得不好。 例如一个简单的 myArray(:) = 0 很慢。 我写了一些定制的CUDA-Kernels,但是执行不力的标准MATLABfunction增加了很多开销,即使在整个代码中一直使用gpuArrays。 我通过用手工编写的CUDA代码replace了MATLAB代码来解决了一些问题 – 但我不想重新实现MATLAB标准function。 我缺less的另一个function是稀疏的GPUmatrix。 所以我的问题是: 如何加快由MATLAB提供的糟糕实现的默认GPU实现? 特别是,如何在使用GPU的MATLAB中加速稀疏matrix运算?

我可以在英特尔集成graphics处理器上运行CUDA吗?

我有一个非常简单的东芝笔记本电脑与i3处理器。 另外,我没有任何昂贵的graphics卡。 在显示设置中,我看到英特尔(HD)graphics作为显示适配器。 我打算学习一些cuda编程。 但是,我不确定,如果我可以在笔记本电脑上做到这一点,因为它没有任何NVIDIA GPU启用GPU。 其实,我怀疑,如果我甚至有一个GPU o_o 所以,如果有人能告诉我是否可以用当前的configuration进行CUDA编程,并且如果可能的话,也请告诉我英特尔(HD)显卡是什么意思?

Haskell Array.Accelerate – forkOS错误

试图用gnuplot来绘制一些Data.Array.Accelerate计算的输出我遇到了一个奇怪的问题。 当通过解释器运行时,一切都很好,就像直接绘制Haskell数据或者只是打印Accelerate值一样,但是尝试绘制Accelerate数据失败。 给出的错误是forkOS_entry: interrupted 。 从那以后,我意识到我应该做更多的UNIX,并且在每个程序中做一件事(好)。 但我有兴趣找出为什么这个失败。 我在下面包含一个最小代码示例。 import Prelude hiding (zip,zipWith) import Graphics.Gnuplot.Simple import Data.Array.Accelerate — import Data.Array.Accelerate.Interpreter import Data.Array.Accelerate.CUDA f :: Vector Float -> Vector Float -> Acc (Vector Float) f xs ys = let xs' = use xs ys' = use ys in (zipWith (*) xs' ys') n=10::Int points = toList.run $ […]

介绍到GPU编程

每个人都有一个巨大的并行超级计算机在他们的桌面上的graphics卡GPU的forms。 什么是GPU社区的“hello world”相当于什么? 我该怎么做,去哪里开始为主要的GPU供应商编程GPU? -亚当

曾几何时,当>比<…快时,等等,什么?

我正在阅读一个很棒的OpenGL教程 。 真是太好了,相信我。 我目前的主题是Z缓冲。 除了解释这一切之外,作者还提到我们可以执行自定义的深度testing,比如GL_LESS,GL_ALWAYS等等。他还解释说,深度值的实际意义(也就是顶部而不是)也可以是定制。 我明白迄今为止。 然后作者说了一些不可思议的事情: 范围zNear可以大于范围zFar; 如果是这样的话,则窗口空间值将被颠倒,从观察者的距离最近或最远的angular度来看。 早些时候,有人说,0的窗口空间Z值最接近,1是最远的。 但是,如果我们的剪辑空间Z值被否定,则1的深度将最接近视图,并且0的深度将最远。 然而,如果我们翻转深度testing的方向(GL_LESS到GL_GREATER等),我们得到完全相同的结果。 所以这只是一个惯例。 事实上,翻转Z的标志和深度testing曾经是许多游戏的重要性能优化。 如果我理解正确的话,性能方面,翻转Z的符号和深度testing只不过是改变一个比较。 所以,如果我理解正确并且作者不是在说谎或者做出反应,那么改变< to >曾经是许多游戏的重要优化 。 作者是不是在写东西,是我误解了什么,或者确实是这样,一旦<作者所说的慢(比作者所说的)要严重> ? 感谢澄清这个相当好奇的事情! 免责声明:我完全知道algorithm的复杂性是优化的主要来源。 而且,我怀疑现在肯定不会有什么区别,我也不是要求这个来优化任何东西。 我只是非常,痛苦,也许令人难以置信的好奇。

如何在NVIDIA CUDA中测量内核时间?

我想测量GPU的时间内核,如何在NVIDIA CUDA中测量它? 例如 __global__ void kernelSample() { some code here get start time some code here get stop time some code here }

用于CUDA编程的GPU仿真器,无需硬件

问题:是否有一个用于Geforce卡的仿真器,可以让我编程和testingCUDA而不需要实际的硬件? 信息: 我期望在CUDA中加速一些我的模拟,但是我的问题是我并不总是在我的桌面上进行这种开发。 我想在我的上网本上做一些工作,但我的上网本没有GPU。 现在据我所知,你需要一个支持CUDA的GPU来运行CUDA。 有没有办法解决这个问题? 这似乎是唯一的方法是GPU模拟器(显然会很痛苦,但会起作用)。 但是,无论如何,我希望听到这样做。 我在Ubuntu 10.04 LTS上进行编程。

利用GPU与C#

我正试图从我的网格中获得更多的处理能力。 我正在使用所有的CPU /核心,是否有可能利用GPU与C#。 任何人都知道任何图书馆或有任何示例代码?

发送3D数组到CUDA内核

我把给出的代码作为答案我怎样才能使用嵌套for循环加起来两个2d(pitched)数组? 并试图使用它的3D而不是2D和稍微改变其他部分,现在看起来如下: __global__ void doSmth(int*** a) { for(int i=0; i<2; i++) for(int j=0; j<2; j++) for(int k=0; k<2; k++) a[i][j][k]=i+j+k; } int main() { int*** h_c = (int***) malloc(2*sizeof(int**)); for(int i=0; i<2; i++) { h_c[i] = (int**) malloc(2*sizeof(int*)); for(int j=0; j<2; j++) GPUerrchk(cudaMalloc((void**)&h_c[i][j],2*sizeof(int))); } int*** d_c; GPUerrchk(cudaMalloc((void****)&d_c,2*sizeof(int**))); GPUerrchk(cudaMemcpy(d_c,h_c,2*sizeof(int**),cudaMemcpyHostToDevice)); doSmth<<<1,1>>>(d_c); GPUerrchk(cudaPeekAtLastError()); int res[2][2][2]; for(int i=0; i<2; […]