英特尔C++编译器给出"offload constructs are not supported on this platform"错误



在windows(使用visual studio)上编译使用_Cilk_offload关键字的基本代码段时,编译器将error : offload constructs are not supported on this platform_Cilk_offload_Cilk_shared(使用Qoffload编译)一起抛出

平台或设置的具体问题是什么?

EDIT:代码在编译时失败,编译机和目标机不一致

下面是我的代码的基本轮廓

Main.cpp

//other includes
#include <cilk/cilk.h>
#include "offload.h"
#define ITERS 100
int main()
{
    // code ommitted
    doSetup();
    for(int i=0;i<ITERS;i++)
//initialize array    {
        doWork();
    }
    // code omitted
}

offload.h

#ifndef OFFLOAD_H
#define OFFLOAD_H
#define ARRAY_WIDTH 100
#define ARRAY_HEIGHT 100
#define ARRAY_SIZE ARRAY_WIDTH*ARRAY_HEIGHT
void doWork();
void doSetup();
#endif

offload.cpp

#include "offload.h"
#include <cilk/cilk.h>
_Cilk_shared float c=1.1;
_Cilk_shared float __declspec(align(64)) a[ARRAY_SIZE]
_Cilk_shared float __declspec(align(64)) b[ARRAY_SIZE]
void doWork()
{
    _Cilk_offload cilk_for(int j=0; j<ARRAY_HEIGHT; j++)
    {
        a[j*ARRAY_WIDTH:ARRAY_WIDTH] = c * a[j*ARRAY_WIDTH:ARRAY_WIDTH] + b[j*ARRAY_WIDTH:ARRAY_WIDTH];
    }
}
void doSetup()
{
    //array initialization omitted
}

修复了安装目录中缺少编译器套件的问题。我更新了并行工作室,文件就出现了。如果您对此有问题,请查看在(installDirectory)compilerlibintel64

下是否存在名为ofldbegin.objofldend.obj的文件。

相关内容

  • 没有找到相关文章

最新更新