Xeon Phi Programming 中 nocopy 子句的含义
Meaning of nocopy clause in Xeon Phi Programming
我是 Xeon Phi Programming 的新手,我目前正在尝试学习显式卸载编程...我一直在学习英特尔提供的某些教程,但我无法正确理解 nocopy 子句,如果有人知道,请尝试通过举例说明它在不同场景中的用法,如果您能向我介绍网络上的任何交互式教程,将对我有很大帮助。
对于默认的#pragma offload,会发生以下五件事:
- 在 Xeon Phi
上分配 space
- 将数据移至 Xeon Phi
- 做数学
- 从 Xeon Phi 移动数据
- 释放分配的缓冲区
nocopy 子句告诉 pragma 跳过第 2 步和第 4 步。
一个用例是当您进行异步卸载时。
在第一代 Xeon Phi 的 PCIe 或第二代 Xeon Phi 的结构中移动数据有延迟,尤其是对于大型阵列。如果您可以在执行卸载传输的同时在主机上执行其他操作,效率会更高。
异步卸载是当您结合使用#pragma offload_transfer 和#pragma offload 来只移动数据而不计算,以及#pragma offload 来进行计算,当然,在两个编译指示之间做一些事情你的主机。
您为#pragma offload 指定了 nocopy 子句,因为您已经使用第一个#pragma offload_transfer.
将数据传输到 Xeon Phi
我是 Xeon Phi Programming 的新手,我目前正在尝试学习显式卸载编程...我一直在学习英特尔提供的某些教程,但我无法正确理解 nocopy 子句,如果有人知道,请尝试通过举例说明它在不同场景中的用法,如果您能向我介绍网络上的任何交互式教程,将对我有很大帮助。
对于默认的#pragma offload,会发生以下五件事:
- 在 Xeon Phi 上分配 space
- 将数据移至 Xeon Phi
- 做数学
- 从 Xeon Phi 移动数据
- 释放分配的缓冲区
nocopy 子句告诉 pragma 跳过第 2 步和第 4 步。
一个用例是当您进行异步卸载时。
在第一代 Xeon Phi 的 PCIe 或第二代 Xeon Phi 的结构中移动数据有延迟,尤其是对于大型阵列。如果您可以在执行卸载传输的同时在主机上执行其他操作,效率会更高。
异步卸载是当您结合使用#pragma offload_transfer 和#pragma offload 来只移动数据而不计算,以及#pragma offload 来进行计算,当然,在两个编译指示之间做一些事情你的主机。
您为#pragma offload 指定了 nocopy 子句,因为您已经使用第一个#pragma offload_transfer.
将数据传输到 Xeon Phi