如何在Xeon Phi上提供intel TBB库

时间:2014-06-20 15:33:44

标签: c++ tbb xeon-phi

我正在尝试在Xeon Phi卸载代码段中使用英特尔TBB。代码无法编译,错误为error : *MIC* cannot open source file "tbb\parallel_for.h"

我安装了MPSS堆栈,运行了binutils.msi实用程序,卸载的代码文件顶部的包含如下:

#include <offload.h>
#pragma offload_attribute(push, target(mic))
#include <tbb\parallel_for.h>
#pragma offload_attribute(pop)
//other includes and code follows

为什么这会失败?

我需要更改为卸载并成功运行我的代码吗?

编辑:

将“{1}}选项添加到”MIC卸载编译器的附加选项“后,编译器找到了-tbb文件,但它提供了一些警告和有关tbb库代码未标记为共享的错误。以下是我的卸载代码段。

<tbb\parallel_for.h>

1 个答案:

答案 0 :(得分:1)

卸载编译器基本上由两个(非常)不同的编译器组成,这些编译器在相同的代码上单独调用。它们中的每一个通常都有自己的命令行,包含和库路径;并非所有命令行选项都从主机转换为MIC编译器。在TBB的情况下,编译器具有特殊选项/Qtbb或仅-tbb,它负责两个编译器的所有路径。

有关如何从卸载区域使用TBB,请参阅tbb\examples\GettingStarted\SUB_STRING_FINDER\sub_string_finder_extended.cpp。并查看Makefile了解如何构建示例。

为了从MSVC环境运行代码,您需要设置与用于构建GettingStarted \ Sub_string_finder示例的英特尔编译器相同的环境。在MSVC中复制环境的简单方法是从示例工作的同一控制台窗口运行它:

  

devenv /useenv

或者具体而言,您需要将MIC_LD_LIBRARY_PATH环境变量设置为指向MIC TBB二进制文件,如here for other libraries所示。