首页 > 代码库 > MIC中函数和变量的声明

MIC中函数和变量的声明

c++/c使用

__declspec(target(mic))函数或变量声明

__attribute__((target(mic)))函数或变量声明

举例如下:

__attribute__((target(mic))) int a;__attribute__((target(mic))) void func();

这里注意attribute前后均是两个下划线,示例代码如下:

#include<stdlib.h>#include<stdio.h>#include<string.h>#define LEN 5__attribute__((target(mic))) void funcheck(int h){    #ifdef    __MIC__        printf("Index on MIC: %d \n",h);    #else        printf("Index on CPU: %d \n",h);    #endif    }int main(int argc,int** argv){    int i;    #pragma offload target(mic)    for(i=0;i<LEN;i++){        funcheck(i);    }    return 0;}

MIC前后也均是两个下划线,这段代码中__MIC__是MIC提供的一个宏定义,这个宏定义用来检查程序是否运行在设备端,也就是MIC端,需要注意的是,这个定义不能在offload代码段内检查!

编译 icc -o demo demo.c 

执行 ./demo 

结果如下:

Index on MIC: 0
Index on MIC: 1
Index on MIC: 2
Index on MIC: 3
Index on MIC: 4

MIC中函数和变量的声明