数据传输的关键接口调用流程如下:
acl.rt.malloc_host会尝试申请物理地址连续的内存,后续在Host与Device数据交互时性能更优。
调用acl.rt.malloc_host接口后且在使用内存前,建议先调用acl.rt.memset接口初始化内存,清除内存中的随机数。
由用户自行管理数据读入内存的实现逻辑。
Ascend RC场景下,不涉及Host上的内存申请、Host内的数据传输、Host与Device之间的数据传输。
需先调用acl.rt.get_run_mode接口获取软件栈的运行模式。
该种方式多一些代码逻辑的判断,不需要由用户处理Device上的内存对齐。在Device上运行应用的场景,该种方式少一些内存复制的步骤,性能较好。
无需调用acl.rt.get_run_mode接口获取软件栈的运行模式。该种方式代码逻辑相比前一种简单,但需由用户处理Device上的内存对齐。