标签: kepler

如何使用Nvidia多进程服务(MPS)运行多个非MPI CUDA应用程序?

我可以在带有MPS的NVIDIA Kepler GPU上同时运行非MPI CUDA应用程序吗?我想这样做是因为我的应用程序无法充分利用GPU,所以我希望它们能够共同运行.有没有代码示例呢?

cuda gpu gpgpu nvidia kepler

5
推荐指数
1
解决办法
9489
查看次数

用于 Kepler 架构的加载/存储单元 (LD/ST) 和特殊功能单元 (SFU)

Kepler 架构白皮书中,NVIDIA 声明SMX 上有32特殊功能单元 (SFU) 和32加载/存储单元 (LD/ST)。

SFU 用于“快速近似超越运算”。不幸的是,我不明白这是什么意思。另一方面,在SFU 的特殊 CUDA 双精度触发函数中,据说它们只能在单精度下工作。这在 K20Xm 上仍然正确吗?

LD/ST 单元显然用于存储和装载。通过这些论文之一是否需要任何内存加载/写入?它们是否也用作单一经线?换句话说,是否可以只有一个当前正在写入或读取的经线?

干杯,安迪

cuda nvidia kepler

5
推荐指数
1
解决办法
5724
查看次数

GPU Kepler CC3.0处理器不仅是流水线架构,还是超标量?

在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处理器不仅是流水线架构,还是超标量?

  1. 流水线 - 这两个序列并行执行(一次执行不同的操作):

    • LOAD [addr1] - > ADD - > STORE [addr1] - > NOP
    • NOP - > LOAD [addr2] - > ADD - > STORE [addr2]
  2. 超标量 - 这两个序列并行执行(一次执行相同的操作):

    • LOAD [reg1] - > ADD - > STORE [reg1]
    • LOAD [reg2] - > ADD - > STORE [reg2]

cuda gpgpu nvidia gpu-programming kepler

4
推荐指数
1
解决办法
223
查看次数

内存在全局写入中合并

在CUDA设备中,在全局内存写入中合并与在全局内存读取中合并一样重要吗?如果是,怎么解释?早期的CUDA设备和最近的CUDA设备之间是否存在差异?

cuda gpu gpgpu kepler

4
推荐指数
1
解决办法
1419
查看次数

nvidia kepler洗牌是"破坏性的"吗?

我正在使用新的kepler的shuffle指令实现CUDA上的并行缩减,类似于:http://devblogs.nvidia.com/parallelforall/faster-parallel-reductions-kepler/

我在给定矩阵中搜索行的最小值,并在内核的末尾我有以下代码:

my_register = min(my_register, __shfl_down(my_register,8,16));
my_register = min(my_register, __shfl_down(my_register,4,16));
my_register = min(my_register, __shfl_down(my_register,2,16));
my_register = min(my_register, __shfl_down(my_register,1,16));
Run Code Online (Sandbox Code Playgroud)

我的块是16*16,所以一切正常,使用该代码我在同一个内核中的两个子行中获得最小值.

现在我还需要返回矩阵每行中最小元素的索引,所以我打算用"if"语句替换"min"并以类似的方式处理这些索引,我对这段代码感到困惑:

if (my_reg > __shfl_down(my_reg,8,16)){my_reg = __shfl_down(my_reg,8,16);};
if (my_reg > __shfl_down(my_reg,4,16)){my_reg = __shfl_down(my_reg,4,16);};
if (my_reg > __shfl_down(my_reg,2,16)){my_reg = __shfl_down(my_reg,2,16);};
if (my_reg > __shfl_down(my_reg,1,16)){my_reg = __shfl_down(my_reg,1,16);};
Run Code Online (Sandbox Code Playgroud)

没有cudaErrors,但内核现在返回垃圾.不过我已经解决了这个问题:

myreg_tmp = __shfl_down(myreg,8,16);
if (myreg > myreg_tmp){myreg = myreg_tmp;};
myreg_tmp = __shfl_down(myreg,4,16);
if (myreg > myreg_tmp){myreg = myreg_tmp;};
myreg_tmp = __shfl_down(myreg,2,16);
if (myreg > myreg_tmp){myreg = myreg_tmp;};
myreg_tmp = __shfl_down(myreg,1,16);
if (myreg > …
Run Code Online (Sandbox Code Playgroud)

cuda nvidia kepler

1
推荐指数
1
解决办法
989
查看次数

同一个多处理器上的并发唯一内核?

是否有可能使用流在Kepler 3.5 GPU中的同一流多处理器上拥有多个独特的内核?即<<<1,1024>>>在具有15个SM的Kepler GPU上同时运行30个大小的内核?

concurrency cuda kepler cuda-streams

1
推荐指数
1
解决办法
224
查看次数

在Kepler CC3.0/3.5,16或32(STREAM)上同时支持多少个内核?

我们知道Fermi仅支持与GPU的单一连接,如下所示:http://on-demand.gputechconf.com/gtc-express/2011/presentations/StreamsAndConcurrencyWebinar.pdf

Fermi架构可以同时支持

GPU上最多16个CUDA内核

正如我们所知,Hyper-Q允许来自多个CUDA流,MPI流程或流程中的线程的多达32个同时连接:http://www.nvidia.com/content/PDF/kepler/NVIDIA-Kepler-GK110-架构Whitepaper.pdf

但是在Kepler CC3.0/3.5,16或32(STREAM)上同时支持多少内核?

cuda gpgpu nvidia kepler

0
推荐指数
1
解决办法
264
查看次数

标签 统计

cuda ×7

kepler ×7

nvidia ×5

gpgpu ×4

gpu ×2

concurrency ×1

cuda-streams ×1

gpu-programming ×1