https://gitcode.com/cann/cann-learning-hub/blob/test/tutorials/hixl_development/02_core_api_development/02.05_hixl_data_transfer.ipynb
sync_desc.remote_addr = 0; // 实际应由远端交换得到 ret = engine.TransferSync(kRemoteEngine, WRITE, sync_descs, 3000);
💡 存在的问题 该章节将该段代码描述为“完整的调用流程示例”,但 remote_addr 固定为 0,无法完成真实的远端内存读写。文档前文已说明远端地址需要由远端分配、注册后经控制面交换获得;该示例没有给出远端端点和地址交换步骤。此外,aclrtMalloc 与 engine.RegisterMem 的返回值未检查。
remote_addr
aclrtMalloc
engine.RegisterMem
建议:补齐双端内存注册和控制面地址交换的最小实现,并检查关键接口返回值;若仅用于说明 API 调用顺序,应明确标注为不可直接运行的伪代码。
尊敬的开发者您好,您的问题已收到,待问题评估后反馈,感谢您的支持
一、文档链接(必填)
https://gitcode.com/cann/cann-learning-hub/blob/test/tutorials/hixl_development/02_core_api_development/02.05_hixl_data_transfer.ipynb
二、问题文档片段(必填)
sync_desc.remote_addr = 0; // 实际应由远端交换得到 ret = engine.TransferSync(kRemoteEngine, WRITE, sync_descs, 3000);💡 存在的问题
该章节将该段代码描述为“完整的调用流程示例”,但
remote_addr固定为 0,无法完成真实的远端内存读写。文档前文已说明远端地址需要由远端分配、注册后经控制面交换获得;该示例没有给出远端端点和地址交换步骤。此外,aclrtMalloc与engine.RegisterMem的返回值未检查。建议:补齐双端内存注册和控制面地址交换的最小实现,并检查关键接口返回值;若仅用于说明 API 调用顺序,应明确标注为不可直接运行的伪代码。