仅对英特尔可见 — GUID: jju1525724114613
Ixiasoft
1. 关于本文档
2. 引言
3. 设置主机(Setting Up the Host Machine)
4. 运行诊断程序(Running Diagnostics)
5. 对多卡系统的 OpenCL* 支持
6. 运行示例(Running Samples)
7. 编译OpenCL内核(Compiling OpenCL Kernels)
8. 运行一个OpenCL设计实例
9. OpenCL* on the Intel® PAC with Intel® Arria® 10 GX FPGA快速入门用户指南存档
10. OpenCL* on Intel® Programmable Acceleration Card with Intel® Arria® 10 GX FPGA快速入门用户指南的文档修订历史
11. 禁用非统一存储器访问(NUMA)和DMA工作线程以优化 PCIe* 带宽
仅对英特尔可见 — GUID: jju1525724114613
Ixiasoft
11. 禁用非统一存储器访问(NUMA)和DMA工作线程以优化 PCIe* 带宽
OpenCL* 使用DMA将数据从主机传输到FPGA器件。默认情况下,有一个DMA工作线程(DMA worker thread),此DMA工作线程执行传输,在传输完成时触发一个回调函数。 DMA工作线程支持主机程序在DMA传输过程中继续工作,从而倾向于提高整体性能。
默认情况下,runtime使用numactl将DMA工作线程保持在与主 OpenCL* 线程相同的NUMA节点上。这降低了与传输数据到不同节点上的工作线程相关联的性能开销。
尽管默认设置旨在提供最佳性能,但在某些系统上,用户可能希望禁用工作线程来提高 PCIe* 带宽或NUMA关联,从而实现调度线程中OS更多自由度。
要对调整存储器传输性能进行试验, OpenCL* MMD提供了两个环境变量:
- DISABLE_NUMA_AFFINITY_ENV:禁止CPU关联的设置。这使Operating System (OS)能够在任何内核上调度DMA线程。通过输入以下命令来使能此环境变量:
$ export DISABLE_NUMA_AFFINITY_ENV=yes
- DISABLE_DMA_WORK_THREAD_ENV:完全禁止DMA工作线程。这将大数据传输转换成主机代码中的模块化操作(blocking operation)。通过输入以下命令来使能此环境变量:
$ export DISABLE_DMA_WORK_THREAD_ENV=yes