host OS内核swap机制导致数据不一致问题
2024/09/06
220
问题信息
问题来源 | 产品大类 | 产品子类 | 关键字 |
---|---|---|---|
实验室 | 安装部署 | 驱动固件 | swap、数据不一致、数据精度 |
问题现象描述
用户通过acl接口进行host侧内存(malloc申请的内存)和device侧内存拷贝时,概率性发生拷贝后数据不一致的问题。
数据不一致确认办法:
- 调用aclrtMemcpy接口将host内存va0拷贝到device侧。
- 再次调用aclrtMemcpy接口将device内存拷贝到host侧内存va1。
- 如果va0的内容不等于va1的内容,说明有可能是此问题。
原因分析
os内核(内核版本6.6以下)的swap机制会将内存条内存和磁盘内存进行交互,提供内存复用性。在内存紧张时,将不常用的内存换到磁盘,等到需要时再换回到内存上。
如果内存swap换出发生在拷贝之前,则拷贝的数据已经被swap出去,拷贝的数据就为非预期数据。
解决措施
升级os内核版本到6.6及以上版本,6.6内核版本已修复此问题。
本页内容