MIC 内存分配中使用2M大页面

来源:互联网 发布:java list嵌套list 编辑:程序博客网 时间:2024/05/17 05:06

如何在offload代码输入输出变量的内存分配中使用2M大页面

英特尔编译器为至强融核™ 协处理器提供的offload编译模式使程序员可以在一段主机代码中加入编译指示或者某些新的关键字使指定的代码段运行在协处理器上。在显式拷贝模式下,程序员在使用offload pragma/directive将指定代码段offload到协处理器上执行的同时,还须指定在主机和扩展卡间进行拷贝的指针或数组类型变量。英特尔编译器在编译过程中会通过加入代码来自动完成主机和协处理器之间的传输数据。

 

在默认情况下offload模式的运行时系统为offload代码输入/输出变量在协处理器内存空间分配内存时会使用4K字节大小的页面。这样当offload代码需要很大的输入输出内存空间时,内存分配过程中就可能会产生很多的页面缺失异常,用户将观察到过长的内存分配延迟。针对这样的问题,英特尔编译器提供了一个环境变量“MIC_USE_2MB_BUFFERS”,使用户可以让运行时系统为offload代码输入/输出变量分配内存时在某些情况下改用2M字节大小的页面。下面是该环境变量的说明:

 

MIC_USE_2MB_BUFFERS

 

为运行时占用内存大小超过该环境变量给定值的指针型变量分配空间时使用2M字节页面。

 

该环境变量的设置方式:

 

整数值 B|K|M|G|T,其中

 

      B = 字节

      K = K字节

      M = M字节

      G = G字节

      T = T字节

例如:

MIC_USE_2MB_BUFFERS=64K

0 0
原创粉丝点击