-1

_Cilk_offload在使用关键字的Windows(使用 Visual Studio)上编译基本代码段时,编译器会error : offload constructs are not supported on this platform在所有带有_Cilk_offloadand的行上抛出_Cilk_shared(使用 \Qoffload 编译)

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

编辑:代码在编译时失败,编译机和目标机不同

以下是我的代码的基本大纲

主文件

//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
}

卸载.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

卸载.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
}
4

1 回答 1

0

修复了问题,安装目录中缺少几个编译器套件。我更新了并行工作室并且文件存在。如果您对此有疑问,请查看该文件是否命名ofldbegin.obj并存ofldend.obj在于您的系统中,在(installDirectory)\compiler\lib\intel64

于 2014-06-11T14:47:57.140 回答