【问题标题】:CUDA malloc() minimum and typical actual alignmentCUDA malloc() 最小和典型实际对齐
【发布时间】:2017-08-04 18:42:30
【问题描述】:

cudaMalloc() documentation

分配的内存适合任何类型的变量。

但是……

  • 什么影响实际对齐?计算能力? CUDA驱动版本?具体是什么卡?分配大小?
  • 我可以根据这些参数确定最小/典型分配对齐吗?

【问题讨论】:

  • (a) 未记录。 (b) 没有。
  • @DmitriBudnikov:在我看来分配量明显大于alignof(long long)...不是吗?
  • @DmitriBudnikov:对不起,我的意思是通过更大的量子对齐。我注意到分配区域的低位有很多 0。
  • 相关:stackoverflow.com/a/14083295/2386951。还要考虑@njuffa 对此的评论。

标签: memory-management cuda malloc gpgpu memory-alignment


【解决方案1】:

您可以不安全地假设它至少是 cudaDeviceProp::textureAlignment
(即费米为 256,开普勒为 512,麦克斯韦)。

@sgarizvi reports 从他在多个设备上的实验来看,分配的设备内存块的对齐不小于设备属性的纹理对齐字段(cudaDeviceProp::textureAlignment)。对于 Kepler 和 Maxwell 设备,这是 512 字节。

当然,就像@talonmies 的注释一样,这实际上并没有得到保证,也没有记录在案。

【讨论】:

    猜你喜欢
    • 2019-01-26
    • 2017-06-27
    • 2016-09-24
    • 2016-10-31
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多