对全局存储器的第一次读取或写入请求代价高昂,但后续的连续操作则不然。以突发方式传输数据可隐藏存储器访问时延,并提高存储器控制器的带宽使用率和效率。
除非绝对需要,否则应始终避免对全局存储器执行原子访问。加载和存储函数应编码为始终推断突发传输事务。这可通过使用 memcpy
操作来实现(如 Vitis 加速示例中的 vadd.cpp 文件所示),也可以通过创建紧凑的 for
循环并按顺序访问所有必需的值来实现(如 开发应用 中所述)。
对全局存储器的第一次读取或写入请求代价高昂,但后续的连续操作则不然。以突发方式传输数据可隐藏存储器访问时延,并提高存储器控制器的带宽使用率和效率。
除非绝对需要,否则应始终避免对全局存储器执行原子访问。加载和存储函数应编码为始终推断突发传输事务。这可通过使用 memcpy
操作来实现(如 Vitis 加速示例中的 vadd.cpp 文件所示),也可以通过创建紧凑的 for
循环并按顺序访问所有必需的值来实现(如 开发应用 中所述)。