MIC offload.h

来源:互联网 发布:美工零基础带薪真的吗 编辑:程序博客网 时间:2024/05/17 23:32

Intel编译器include文件夹下有MIC的头文件:offload.h

列举几个常用的函数说明:


_Offload_number_of_devices()  //获取MIC数目

_Offload_get_device_number() //获取MIC编号

omp_get_max_threads_target(TARGET_MIC, 0)   //获取MIC上可以最多支持的线程数

omp_get_num_procs_target(TARGET_MIC, 0)      //获取MIC上的处理器数目


测试代码:

#include <stdio.h>
#include "offload.h"

int main(int argc, char **argv)
{
        printf("_Offload_number_of_devices()=%d\n",_Offload_number_of_devices());
        printf("host: _Offload_get_device_number()=%d\n",_Offload_get_device_number());
        printf("host: _Offload_get_physical_device_number()=%d\n\n",_Offload_get_physical_device_number());
        if(_Offload_number_of_devices()>=1)
        {
#pragma offload target(mic:0)
                {
                        printf("mic0: _Offload_get_device_number()=%d\n",_Offload_get_device_number());
                        printf("mic0: _Offload_get_physical_device_number()=%d\n\n",_Offload_get_physical_device_number());
                }
        }
        if(_Offload_number_of_devices()>=2)
        {
#pragma offload target(mic:1)
                {
                        printf("mic1: _Offload_get_device_number()=%d\n",_Offload_get_device_number());
                        printf("mic1: _Offload_get_physical_device_number()=%d\n\n",_Offload_get_physical_device_number());
                }
        }

        printf("omp_get_max_threads_target(TARGET_MIC, 0)=%d\n",omp_get_max_threads_target(TARGET_MIC, 0));
        printf("omp_get_num_procs_target(TARGET_MIC, 0)=%d\n\n",omp_get_num_procs_target(TARGET_MIC, 0));

        return 0;
}

运行结果:

_Offload_number_of_devices()=2
host: _Offload_get_device_number()=-1
host: _Offload_get_physical_device_number()=-1

omp_get_default_device()=0
omp_get_num_devices()=2

omp_get_max_threads_target(TARGET_MIC, 0)=240    //7110P上运行的结果,7110P有61个核,1个运行uos,其它每个核上可以运行4个线程,所以这里显示的是240
omp_get_num_procs_target(TARGET_MIC, 0)=240    

mic1: _Offload_get_device_number()=1
mic1: _Offload_get_physical_device_number()=1

mic0: _Offload_get_device_number()=0
mic0: _Offload_get_physical_device_number()=0


设置环境变量:

export MIC_ENV_PREFIX=MIC

export MIC_OMP_NUM_THREADS=180

再次运行结果:

_Offload_number_of_devices()=2
host: _Offload_get_device_number()=-1
host: _Offload_get_physical_device_number()=-1

omp_get_default_device()=0
omp_get_num_devices()=2

omp_get_max_threads_target(TARGET_MIC, 0)=180                             //环境变量MIC_OMP_NUM_THREADS改变omp_get_max_threads_target的值
omp_get_num_procs_target(TARGET_MIC, 0)=240

mic1: _Offload_get_device_number()=1
mic1: _Offload_get_physical_device_number()=1

mic0: _Offload_get_device_number()=0
mic0: _Offload_get_physical_device_number()=0

0 0
原创粉丝点击