gpgpu相关内容

GPU着色器Turing是否已完成

我知道完整的GPU是计算的庞然大物-包括计算的每个步骤和内存.因此,很明显,GPU可以计算出我们想要的任何东西-它已经完成了Turing. 我的问题是关于各种GPU(“流处理器"/"CUDA核心")上的单个着色器: 图灵完成了吗? 我(理论上)可以使用单个着色器在任意输入上计算任意函数吗? 我试图了解计算着色器的“规模"是什么. 解决方案 您将着色器指的是用于计算着色的程序吗? ..
发布时间:2020-11-20 00:16:58 其他开发

使用CUDA减少大向量中排列的等长的多个块

我正在寻找一种减少长度相等的多个块的快速方法 排列成一个大向量. 我有N个子数组(连续元素),它们排列成一个大数组.每个子数组都有一个固定的大小:k. 所以整个数组的大小是:N * K 我正在做的是将内核调用N次.在每次计算子数组的约简时,如下所示: 我将遍历大向量中包含的所有子数组: for(i=0;i ..
发布时间:2020-11-20 00:16:50 其他开发

将Tensorflow与GPU结合使用时出错

我尝试了许多不同的Tensorflow示例,这些示例在CPU上工作正常,但是当我尝试在GPU上运行它们时会产生相同的错误.一个小例子是这样的: import tensorflow as tf # Creates a graph. a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a') b = tf.co ..
发布时间:2020-11-20 00:16:47 其他开发

如何将多个重复的参数传递给CUDA内核

我正在寻找一种优雅的方式来在CUDA内核中传递多个重复的参数, 众所周知,每个内核参数都位于每个堆栈的堆栈中因此,CUDA线程在内核传递给每个线程的参数和位于每个堆栈上的内存之间可能存在重复。 为了尽量减少传递的重复参数的数量,我正在寻找一种优雅的方式。 为了解释我的担忧:假设我的代码如下: kernelFunction>>> ..
发布时间:2020-10-13 01:42:18 其他开发

使用CUDA C计算2000个2D数组的平均值

我有2000个2D数组(每个数组为1000x1000),我需要计算每个数组的平均值并将结果放入一个2000向量中。 通过为每个2D数组调用内核来做到这一点,但是我天真地想立即进行计算。 这就是我为一个内核完成的工作2D阵列。我想让内核在一个内核中针对2000个2D阵列执行此操作。 #include #include #include ..
发布时间:2020-10-13 01:42:10 其他开发

如何使用推力减少数组中非连续的数字段

我有一维数组“ A”,它是由许多数组“ a”组成的,例如: 中数组“ a”的示例p> 我正在实现一个代码,对不连续的段进行求和(对“ A”中每个数组“ a”的相同颜色的段中的数字求和,如下所示: “ 有什么想法可以有效地做到这一点? 非常感谢 注意:这些图片代表只有一个数组“ a”。大数组“ A”包含许多数组“ a” 解决方案 在一般情况下,预先不知道数据的 ..
发布时间:2020-10-13 01:34:19 其他开发

Cuda优化技术

我已经写了一个CUDA代码来解决NP-Complete问题,但是性能却不是我所怀疑的。 我了解“一些”优化技术(使用共享的内存,纹理,零复制...) CUDA程序员应该了解哪些最重要的优化技术? 解决方案 您应该阅读NVIDIA的CUDA编程最佳实践指南: http://developer.download.nvidia.com/compute/cuda /3_0/toolki ..
发布时间:2020-10-13 01:29:09 其他开发

对寄存器和共享内存使用无符号短整数是否有意义?

在CUDA程序中为寄存器(用于保存寄存器的内存)和共享内存(更快的访问)使用无符号的短整数有意义吗? 我创建模板设备功能(使用寄存器和共享内存),专门用于uint和ushort。 使用: 对于uint:25个寄存器,速度460 MB /秒。 对于ushort:26个寄存器,速度为420 MB /秒。 因此,没有理由使用无符号short int。 解决方案 我对CUDA没有 ..
发布时间:2020-10-13 01:29:08 其他开发

何时将volatile与寄存器/局部变量一起使用

在CUDA中使用易失性限定符声明寄存器数组是什么意思? 当我尝试将volatile关键字与寄存器数组一起使用时,它删除了溢出的寄存器数内存到本地内存。 (即强制CUDA使用寄存器而不是本地内存)这是预期的行为吗? 我没有找到有关volatile的寄存器阵列使用方面的任何信息。 这是两个版本的ptxas -v输出 带有易变限定符 __volatile__浮点数组[32 ..
发布时间:2020-10-13 01:25:08 其他开发

使用CUDA模拟管道程序

说我有两个数组 A 和 B 和一个 kernel1 通过将两个数组分成不同的块,对两个数组进行一些计算(例如,向量加法),并将部分结果写入 C 。 kernel1 然后继续执行此操作,直到处理完数组中的所有元素为止。 unsigned int i = blockIdx.x * blockDim.x + threadIdx.x; unsigned int gridSize = block ..
发布时间:2020-10-13 01:10:25 其他开发

有关CUDA中从块到SM分布的详细信息的问题

让我以具有1.3计算能力的硬件为例。 有30个SM。然后最多可以同时运行240个块(考虑到寄存器和共享内存的限制,对块数的限制可能要低得多)。超过240的那些块必须等待可用的硬件资源。 我的问题是,何时将超过240的那些块分配给SM。完成前240个模块中的一些块之后?还是当前240个块中的所有完成时? 我写了这样的一段代码。 #include #inc ..
发布时间:2020-10-13 01:10:23 其他开发

CUDA Takeit和CUDA sdk有什么区别

我正在Ubuntu 14.04上安装CUDA,并且具有Maxwell卡(GTX 9 **系列),并且我认为我已经使用工具包正确安装了所有内容,因为我可以编译示例。但是,我在应该安装SDK的地方读到了这句话(这似乎与sdk 4讨论过)。我不确定工具包和SDK是否不同?当我拥有更高版本的9系列卡时,这是否意味着我正在运行CUDA 6?这是我的nvcc版本 nvcc:NVIDIA(R)Cuda编 ..
发布时间:2020-10-13 01:05:12 其他开发

NVIDIA Fermi中的二级缓存

当查看NVIDIA Fermi架构中的性能计数器的名称(cuda的doc文件夹中的Compute_profiler.txt文件)时,我注意到对于L2缓存未命中,有两个性能计数器,即l2_subp0_read_sector_misses和l2_subp1_read_sector_misses。他们说这些是两片L2。 为什么它们有两片L2?与流多处理器体系结构有关系吗? 谢谢 解决方 ..
发布时间:2020-10-13 01:00:53 其他开发

GPU / CUDA核心是SIMD的吗?

让我们采用 nVidia Fermi计算体系结构。它说: 第一个基于Fermi的GPU,实现了30亿个晶体管,具有多达512个CUDA内核。 CUDA内核每个线程的每个时钟执行一个浮点数或整数指令。 512个CUDA内核以16个SM(每个32个内核)进行组织。 [...] 每个CUDA处理器都具有完整的流水线整数算法。逻辑单元(ALU)和浮点单元(FPU)。 [...] ..
发布时间:2020-10-13 00:54:03 其他开发