23得票5回答
如何创建或操作GPU汇编?

有人在创建/操纵GPU机器代码方面有经验吗?可能是在运行时进行的? 我对修改GPU汇编代码感兴趣,可能是在运行时以最小的开销。具体来说,我对基于汇编的遗传编程很感兴趣。 我了解ATI已经发布了一些卡的ISA,而nvidia最近为旧卡发布了CUDA反汇编器,但我不确定是否可以在运行时或甚至事...

9得票1回答
在一个C++程序中使用不同的新运算符:如何实现?是否明智?

我在代码中使用了不同的内存分配器:一个用于CUDA(管理的或非管理的),一个用于纯主机内存。我也可以想象在某些情况下你可能想要使用不同的分配算法——例如,一个算法用于大型、长期存在的块,另一个算法用于短暂的、小型的对象。 我想知道如何正确地实现这样的系统。 使用放置 new吗? 我的当前...

11得票1回答
Kepler架构中的L2缓存

L2缓存在Kepler架构的GPU中如何处理引用局部性?例如,如果线程访问全局内存中的一个地址,假设该地址的值不在L2缓存中,那么该值如何被缓存?它是临时的吗?还是该地址附近的其他值也会被带到L2缓存中(空间)? 下面的图片来自NVIDIA白皮书。

11得票2回答
一个设备使用多个CUDA上下文有意义吗?

我原以为自己已经掌握了这个技术,但事实上并不是这样:)我需要使用NVENC从不符合编码器要求的帧中执行并行H.264流编码,因此我有以下代码流程: 调用通知新帧已到达的回调函数 将帧复制到CUDA内存并执行所需的颜色空间转换(只有第一个“cuMemcpy”是同步的,因此可以从回调函数返回,...

11得票1回答
在CUDA中哪些类型的变量会占用寄存器?

__global__ void add( int *c, const int* a, const int* b ) { int x = blockIdx.x; int y = blockIdx.y; int offset = x + y * gridDim.x; ...

9得票2回答
CUDA: 如何在GPU内将数组所有元素求和为一个数字?

首先,让我声明我充分意识到我的问题已经被问过了:CUDA中的块约简 然而,正如我希望表明的那样,我的问题是对那个问题的补充,并且我有特殊的需求,使得那个OP找到的解决方案不合适。 那么,让我解释一下。在我的当前代码中,我在while循环的每次迭代中运行一个Cuda内核,对一个数组的值进行一些...

7得票2回答
CUDA - 从设备全局内存复制到纹理内存

我正在使用Cuda和C++在GPU上执行两个任务(分别分离为2个内核)。作为输入,我采用一个NxM矩阵(以浮点数组的形式存储在主机内存中)。然后我将使用一个内核对此矩阵执行一些操作,使其成为一个NxMxD矩阵。然后我有第二个内核,它对这个3D矩阵执行一些操作(我只读取值,不必向其中写入值)。 ...

15得票1回答
nVIDIA CC 2.1 GPU线程束调度器如何同时为一个线程束发出两条指令?

注意:这个问题只适用于nVIDIA计算能力为2.1的设备。以下信息是从CUDA编程指南v4.1中获得的: 在计算能力2.1的设备中,每个SM具有48个整数和浮点运算的SP(核心)。每个warp由32个连续线程组成。每个SM有2个warp调度器。在每个指令发出时间,一个warp调度器选择一组就...

9得票2回答
如何在GPU上运行Apache Spark?

我想将Apache Spark与GPU集成,但Spark是基于Java开发的,而GPU使用CUDA / OpenCL,那么我们该如何将它们合并。

7得票2回答
使用2个视频卡的CUDA C编程

我对CUDA编程非常陌生,正在阅读由NVIDIA提供的“CUDA C编程指南”。 (http://developer.download.nvidia.com/compute/DevZone/docs/html/C/doc/CUDA_C_Programming_Guide.pdf) 在第25页...