小编Ste*_*ang的帖子

如何解释CUDA中的指令重放

任何人都可以总结一下CUDA中不同类型的指令重放的定义和原因吗?

他们是:

  1. inst_replay_overhead:
  2. shared_replay_overhead:
  3. global_replay_overhead:
  4. global_cache_replay_overhead
  5. local_replay_overhead
  6. atomic_replay_overhead
  7. shared_load_replay
  8. shared_store_replay
  9. global_ld_mem_divergence_replays
  10. global_st_mem_divergence_replays

cuda

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

如何了解CUDA / GPU中SASS分析的结果

我使用了CUDA Binary Utilities之一cuobjdump来生成SASS代码,示例结果如下。这些代码尝试从全局内存加载。

/*0028*/ IMAD R6.CC, R3, R5, c[0x0][0x20]; 
/*0030*/ IMAD.HI.X R7, R3, R5, c[0x0][0x24]; 
/*0040*/ LD.E R2, [R6]; //load
Run Code Online (Sandbox Code Playgroud)
  1. 我在哪里可以获得解释每个指令含义的SASS代码的完整手册。在“ cuda二进制实用程序”中,它仅提供指令含义的一般说明。例如,它没有解释“ R1.cc”,“ IMAD.HI.X”和LD.e的含义。

  2. 第二条指令的含义是什么。我猜第一个是计算每个线程应该加载的内存地址,而第三个指令是将全局内存加载到寄存器中。我对第二条指令的含义一无所知。

  3. 我猜cuda将一些参数信息(例如网格大小,块大小和数组基地址)保存到常量内存中。在这种情况下,c [0x0] [0x20]是数组的基地址。我的问题是我如何获得这些信息。

assembly cuda gpu ptx

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

标签 统计

cuda ×2

assembly ×1

gpu ×1

ptx ×1