【问题标题】:What is the difference between a bank conflict and channel conflict on AMD hardware?AMD 硬件上的银行冲突和通道冲突有什么区别?
【发布时间】:2015-10-16 05:24:07
【问题描述】:

我正在学习 OpenCL 编程并在 AMD GPU 上运行一些程序。我参考了 AMD OpenCL 编程指南来阅读 GCN 架构的全局内存优化。我无法理解银行冲突和渠道冲突之间的区别。

有人可以解释一下它们之间有什么区别吗? 提前致谢。

【问题讨论】:

    标签: opencl amd


    【解决方案1】:

    如果两个内存访问请求被定向到同一个控制器,硬件会序列化访问。 这称为通道冲突。这意味着,每个集成内存控制器电路一次只能服务于一个任务,如果您碰巧将任意两个任务的地址映射到同一通道,它们是按顺序提供的。

    类似地,如果两个内存访问请求进入同一个内存库,硬件会序列化访问。 这称为bank冲突。如果有多个内存芯片,则应避免使用硬件特殊宽度的stride。

    4 个通道和 2 个组的示例:(不是真实世界的示例,因为组必须大于或等于通道)

    address   1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17
    channel   1  2  3  4  1  2  3  4  1  2   3   4   1   2   3   4   1
    bank      1  2  1  2  1  2  1  2  1  2   1   2   1   2   1   2   1
    

    所以你不应该这样读:

       address    1  3  5  7   9
       channel    1  3  1  3   1  // %50 channel conflict
       bank       1  1  1  1   1  //%100 bank conflict,serialized on bank level
    

    也不是这个:

       address    1    5     9    13
       channel    1    1     1    1     // %100 channel conflict, serialized
       bank       1    1     1    1     // %100 bank conflict, serialized
    

    但这可能没问题:

       address    1    6     11    16
       channel    1    2     3     4   // no conflict, %100 channel usage
       bank       1    2     1     2   // no conflict, %100 bank usage
    

    因为步幅不是通道或堤岸宽度的倍数。

    编辑:如果您的算法更多的是本地存储优化,那么您应该注意本地数据存储通道冲突。最重要的是,一些卡可以使用恒定内存作为独立的通道源来加快读取速度。

    编辑:您可以使用多个波前来隐藏基于冲突的延迟,也可以使用指令级并行。

    编辑: 本地数据存储通道的数量比全局通道快得多且数量更多,因此针对 LDS(本地数据共享)进行优化非常重要,因此在全局通道上统一收集然后分散在本地通道上通道不应该像在全局通道上分散和在本地通道上均匀聚集那样成问题。

    http://developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel-processing-app-sdk/opencl-optimization-guide/#50401334_pgfId-472173

    对于具有不错主板的 AMD APU,如果您的软件不可更改,您应该能够根据需要选择 n 路通道交错或 n 路库交错。

    【讨论】:

    • 链接页面未找到404。之所以难以理解,是因为银行、频道等基本符号。以及它们与其他部分有什么关系。
    猜你喜欢
    • 2012-11-29
    • 2014-08-10
    • 2011-04-20
    • 2018-04-15
    • 2011-03-31
    • 2013-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多