gpu相关内容

子矩阵计算

我想计算矩阵的两个子矩阵之间的成对距离。例如,我有一个矩阵A(MxN)和该矩阵B1(mxn)和B2(kxt)的两个块。更具体地,我想计算B1(1,1)元素与B2的所有其他元素的距离,并对所有B1元素进行这个过程。为了更清楚,B1和B2可以不是矩阵的紧凑部分,并且基本上我知道的信息是B1和B2的元素在矩阵A上的坐标。这里是一个示例。 for(int i = 0; i for(int j = ..
发布时间:2017-03-04 15:44:46 其它硬件开发

如何在同一块中的经纱分歧

我有点困惑,如何可能的变化,需要通过 __ syncthreads()函数同步。块中的所有元素以SIMT方式处理相同的代码。怎么可能是他们不同步?它是否与调度程序相关?不同的经线有不同的计算时间吗?为什么使用 __ syncthreads()时会有开销? 假设我们在一个区块中有12个不同的变形,其中3个完成了他们的工作。所以现在有空闲和其他经线得到他们的计算时间。或者他们仍然得到计算时间来做 ..
发布时间:2017-03-04 15:40:22 其它硬件开发

用于计算邻居列表的最佳GPU算法

给定3D中的数千个点的集合,我需要得到每个粒子的邻域的列表,其落入某个截止值(就欧几里得距离而言),并且如果可能的话,从最近的f距离排序。 在CUDA或OpenCL语言中,这是最快的GPU算法吗? 解决方案 我知道的最快的GPU MD代码之一, HALMD ,使用了与 CUDA SDK示例,”粒子“。 HALMD论文和粒子白皮书都非常清楚。下划线算法是将粒子分配到截止半径大小的仓中, ..
发布时间:2017-03-04 15:34:06 其它硬件开发

如何在Linux上获取连接的显示器数量到gpu?

我需要确定给定的CUDA设备是否显示连接。我知道没有CUDA功能这样做。 在Windows上,我可以使用NVAPI获取连接的显示器数量和每个设备的PCI总线/插槽ID。使用后者,我可以找到匹配的CUDA设备(通过调用cudaGetDeviceProperties)。 如何在Linux上执行同样的操作,NVAPI不可用? 技术上,我需要的是一个Linux替代下面的代码: N ..
发布时间:2017-03-04 15:26:17 服务器开发

如何在GPU中添加数组的元素?任何类似于CUBLAS中的cublasDasum的函数?

我知道我可以执行 parallel reduction 来并行计算数组的元素。 但是我有点难以跟随它。我看到在cublas,有一个称为 cublasDasum 的函数,它将元素的绝对值相加。似乎应该有一个非常类似的功能,总结元素,而不是绝对值。有任何方式,我可以找到 cublasDasum 的源代码,看看这是怎么做的? 添加数组是一个基本的操作。我不能相信没有这样的功能,它...。 ..
发布时间:2017-03-04 15:24:39 其它硬件开发

cudaMemcpyToSymbol不复制数据

我想使用 __ constant __ 内存,所有内存中的所有线程都可以访问。 声明是这样的 extern __constant__ float smooth [8 * 1024] 我使用将数据复制到此变量 cudaMemcpyToSymbol(“smooth”,smooth_local,smooth_size,0,cudaMemcpyHostToDevic ..
发布时间:2017-03-04 15:22:39 其它硬件开发

是否可以在应用程序之间共享Cuda上下文?

我想在两个独立的Linux进程之间传递一个Cuda上下文(使用我已经设置的POSIX消息队列)。 使用 cuCtxPopCurrent()和 cuCtxPushCurrent(),我可以得到上下文指针,但是这个指针在进程的内存中引用我调用函数,并在进程之间传递它是无意义的。 我正在寻找其他解决方案。我的想法到目前为止: 尝试深入复制 CUcontext 查看是否可以找到一个共享 ..
发布时间:2017-03-04 15:22:15 服务器开发

如何释放device_vector< int>

我使用推力装置向量分配了一些空间,如下所示: thrust :: device_vector s(10000000000); 如何清楚地显示并正确? 解决方案 clear()将向量的大小设置为0,相关的内存。使用STL释放内存的标准方法是用空矢量交换矢量。它应该也适用于Thrust。 v.clear(); device_vector ..
发布时间:2017-03-04 15:21:22 其它硬件开发

cuda:warp发散开销vs额外算术

当然,通过 if 和 switch 语句, 。 但是什么是经线发散的开销(仅调度一些线程执行某些行)与额外的无用算法? / p> 考虑以下虚拟示例: verison 1: __ device__ int get_D(int A,int B,int C) { //对于每个线程,值A可能不同。 int D = 0; if(A ..
发布时间:2017-03-04 15:19:38 其它硬件开发

CUDA:注入我自己的PTX功能?

我想能够使用PTX 1.3中的一个功能,该功能尚未实现它的C接口。有没有办法在PTX中编写自己的函数并注入到现有的二进制文件中? 我正在寻找的功能是获取%smid 解决方案 答案: __ noinline__ __device__ uint get_smid(void) { uint ret; asm(“mov.u32%0,%smid;”:“= r”(ret)); ..
发布时间:2017-03-04 15:17:05 其它硬件开发

多个GPU与Cuda推力?

如何在多个GPU上使用Thrust? 只是使用cudaSetDevice(deviceId) ,然后运行相关的Thrust代码? 解决方案 p>使用CUDA 4.0或更高版本, cudaSetDevice(deviceId)后跟您的推力代码应该工作。 请记住,您需要在每个设备上创建和操作单独的矢量(除非您有支持对等内存访问和PCI-快速带宽足以满足您的任务)。 ..
发布时间:2017-03-04 15:16:35 其它硬件开发

CUDA中的广义Hough变换 - 如何加快binning过程?

正如标题所说,我正在研究一些平行计算机视觉技术的个人研究。使用CUDA,我试图实现一个GPGPU版本的霍夫变换。我遇到的唯一问题是在投票过程中。我调用atomicAdd()以防止多个同时写入操作,我似乎没有获得太多的性能效率。我在网上搜索,但没有发现任何方式显着提高表决过程的性能。 非常感谢您提供有关投票程序的任何帮助。 解决方案 我不熟悉霍夫变换,所以发布一些伪码可以帮助这里。但是 ..
发布时间:2017-03-04 15:16:11 其它硬件开发

CUDA“无兼容设备”在Ubuntu 11.10 / 12.04上的错误

我一直在试图在我的笔记本电脑上建立一个Ubuntu环境一段时间,现在CUDA编程。我目前双启动Windows 8和Ubuntu 12.04,并希望在Ubuntu上安装CUDA 5。 笔记本电脑配有GeForce GT 640M显卡(完整规格请参见下文)。这是一个Optimus卡。 最初我是双引导Ubuntu 11.10,并尝试过11.10和12.04的教程。 我尝试了许多形状和尺 ..
发布时间:2017-03-04 15:13:52 其它硬件开发

DirectCompute和OpenCL for GPU编程?

我有一些(财务)任务应该很好地映射到GPU计算,但我不确定是否应该使用OpenCL或DirectCompute。我做了一些GPU计算,但它是很久以前(3年)。我通过OpenGL做了,因为那时没有真正的任何替代。 我看到一些OpenCL演示文稿,看起来很不错。我还没有看到任何关于DirectCompute的事情,但我期望它也很好。 我对跨平台兼容性不感兴趣,除此之外, ,我期望两个模型是 ..
发布时间:2017-03-04 15:13:25 其它硬件开发

将GPU上构建的anano模型转换为CPU?

我有一些建立在gpu上的深度学习模型的pickle文件。我想在生产中使用它们。但是当我尝试在服务器上取消它们,我得到以下错误。 回溯(最近最后一次呼叫): 文件“score.py”,第30行,位于 model =(cPickle.load(file)) 文件“/usr/local/python2.7/lib/python2.7/site-packages/Theano-0. ..
发布时间:2017-03-04 15:12:54 其它硬件开发

如何调试CUDA使用eclipse Nsight与只有一个GPU

我收到一个错误:“所有的cuda设备都用于显示,调试时不能使用 (使用Ubuntu) 任何方式使用Nsight eclipse只有一个GPU调试? 我看到了解决方案像 “sudo service lightdm stop” 杀死X但是杀死Nsight eclipse太多了什么意思? 更新:由于不可能使用运行X的同一GPU进行调试,我不得不问:在家庭网络中如何使用ANOTHER计 ..
发布时间:2017-03-04 15:12:10 Java开发

我如何使用GPU与Java编程

我使用CUDAC这些天访问GPU。但现在我的指南要求我使用Java和GPU。所以我在互联网上搜索并找到 Rootbeer是最好的选择,但我不能理解如何使用“Rootbeer”运行程序。可以有人告诉我使用Rootbeer的步骤。 解决方案 来自Nvidia的Mark Harris CUDA在SC14的未来。您可以观看这里 。 您可能会感兴趣的主要事情是他谈论编程语言,特别是Java的部 ..
发布时间:2017-03-04 15:11:58 其它硬件开发

多个进程并行启动CUDA内核

我知道具有2.x或更高的计算能力的NVIDIA gpus可以同时执行u pto 16内核。 然而,我的应用程序产生了7个“进程”,这7个进程中的每个进程都启动了CUDA内核。 我的第一个问题是,这些内核。 我很困惑,因为CUDA C编程指南说: “来自一个CUDA上下文的内核不能与来自另一个CUDA上下文的内核同时执行。 这带给我第二个问题,什么是CUDA“上下文”? ..
发布时间:2017-03-04 15:09:41 其它硬件开发

CUDA内核能调用cublas函数吗?

我知道这听起来很奇怪,但这里是我的场景: 我需要做一个矩阵 - 矩阵乘法(A(n * k)* B * n)),但是我只需要为输出矩阵评估对角元素。我搜索cublas库,没有找到任何2级或3级功能可以做到这一点。 所以,我决定分配A的每一行和B的每一列到CUDA线程。对于每个线程(idx),我需要计算点积“A [idx,:] * B [:,idx]”并将其保存为对应的对角线输出。现在,因为这 ..
发布时间:2017-03-04 15:06:44 其它硬件开发