英特尔LOGO

英特尔 oneAPI DPC ++/C++ 编译器入门

intel-Get-Started-with-the-oneAPI-DPC ++-C++-编译器-产品

介绍

英特尔® oneAPI DPC++/C++ 编译器提供优化,可帮助您的应用程序在 Windows* 和 Linux* 上的英特尔® 64 架构上更快地运行,并支持最新的 C、C++ 和 SYCL 语言标准。 该编译器生成优化的代码,通过采用 advan 可以显着提高运行速度tage 英特尔® 至强® 处理器和兼容处理器中不断增加的内核数量和向量寄存器宽度。 英特尔® 编译器将通过卓越的优化和单指令多数据 (SIMD) 矢量化、与英特尔® 性能库的集成以及利用 OpenMP* 5.0/5.1 并行编程模型来帮助您提高应用程序性能。

英特尔® oneAPI DPC++/C++ 编译器编译基于 C++ 的 SYCL* 源代码 files 适用于范围广泛的计算加速器。
英特尔® oneAPI DPC++/C++ 编译器是英特尔® oneAPI 工具包的一部分。

查找更多

内容描述和链接
发行说明                                  访问发行说明页面了解已知问题和最新信息。

英特尔® oneAPI 编程指南    提供有关英特尔® oneAPI DPC++/C++ 编译器的详细信息

编程模型,包括有关 SYCL* 和 OpenMP* 卸载的详细信息、针对各种目标加速器的编程以及对英特尔® oneAPI 库的介绍。

英特尔® oneAPI DPC++/C++                探索英特尔® oneAPI DPC++/C++ 编译器功能和设置以及 编译器开发指南和          获取有关编译器选项、属性和 参考                                        更多的。

oneAPI代码Samp莱斯                      探索最新的oneAPI代码amp莱斯。

•               英特尔® oneAPI 数据并行 C+      在英特尔® oneAPI 数据并行 C+ 中提问并寻找答案

+ 论坛                                      + 和英特尔® C++ 编译器论坛。

•               英特尔® C++ 编译器论坛

 

英特尔® oneAPI DPC++/C++                浏览教程、培训材料和其他英特尔® oneAPI 编译器文档                  DPC++/C++ 编译器文档。

SYCL 规范版本 1.2.1       SYCL 规范,解释了 SYCL 如何集成 OpenCL 设备 PDF                                                  使用现代 C++。

https://www.khronos.org/sycl/         超过view 的SYCL。

GNU* C++ 库——使用         关于使用双 ABI 的 GNU* C++ 库文档。 双 ABI

Yocto* 项目的层                  使用 meta-intel 将 oneAPI 组件添加到 Yocto 项目构建中

層。

声明和免责声明
英特尔技术可能需要启用硬件,软件或服务才能激活。

  • 没有任何产品或组件是绝对安全的。
  • 您的费用和结果可能会有所不同。

© 英特尔公司。 英特尔、英特尔徽标和其他英特尔标志是英特尔公司或其子公司的商标。 其他名称和品牌可能会被视为他人的财产。

本文件不授予任何知识产权许可(无论是明示的、暗示的、禁止反言的还是其他方式)。
所述产品可能包含设计缺陷或错误(称为勘误表),这可能导致产品与已发布的规格不符。最新勘误表可应要求提供。

英特尔否认所有明示和默示保证,包括但不限于适销性、特定用途适用性和不侵权的默示保证,以及因履行过程、交易过程或贸易使用产生的任何保证。

Linux 入门

开始之前

设置环境变量
在使用编译器之前,您必须先使用初始化实用程序获取环境脚本来设置环境变量。 这将一步初始化所有工具。

  1. 确定你的安装目录, :
    • a. 如果您的编译器是由 root 用户或 sudo 用户安装在默认位置,则编译器将安装在 /opt/intel/oneapi 下。 在这种情况下, 是 /opt/intel/oneapi。
    • b. 对于非 root 用户,使用 intel/oneapi 下的主目录。 在这种情况下,
      将是 $HOME/intel/oneapi。
    • c. 对于集群或企业用户,您的管理团队可能已经在共享网络上安装了编译器 file 系统。 请咨询您当地的管理人员以了解安装位置
      ( ).
  2. 为您的 shell 获取环境设置脚本:
    • a. 庆典:来源/setvars.sh intel64
    • b. csh/tcsh: 来源/setvars.csh intel64

安装 GPU 驱动程序或插件(可选)
您可以使用 C++ 和 SYCL* 开发将在英特尔、AMD* 或 NVIDIA* GPU 上运行的 oneAPI 应用程序。 要为特定 GPU 开发和运行应用程序,您必须首先安装相应的驱动程序或插件:

  • 要使用 Intel GPU,请安装最新的 Intel GPU 驱动程序。
  • 要使用 AMD GPU,请安装 oneAPI for AMD GPUs 插件。
  • 要使用 NVIDIA GPU,请安装 oneAPI for NVIDIA GPUs 插件。

选项 1:使用命令行
英特尔® oneAPI DPC++/C++ 编译器提供多个驱动程序:

英特尔-Get-Started-with-the-oneAPI-DPC ++-C++-Compiler-FIG-1英特尔-Get-Started-with-the-oneAPI-DPC ++-C++-Compiler-FIG-2

使用以下语法调用编译器:
{编译器驱动} [选项] file1 [file2…]

例如amp乐:
icpx hello-world.cpp

对于 SYCL 编译,将 -fsycl 选项与 C++ 驱动程序一起使用:
icpx -fsycl 你好-world.cpp

笔记: 使用 -fsycl 时,假定 -fsycl-targets=spir64,除非在命令中明确设置了 -fsycl-targets。
如果您的目标是 NVIDIA 或 AMD GPU,请参阅相应的 GPU 插件入门指南以获取详细的编译说明:

  • 适用于 NVIDIA GPU 的 oneAPI 入门指南
  • oneAPI for AMD GPU 入门指南

选项 2:使用 Eclipse* CDT
按照以下步骤从 Eclipse* CDT 中调用编译器。

安装英特尔® 编译器 Eclipse CDT 插件。

  1. 启动日食
  2. 选择帮助 > 安装新软件
  3. 选择添加以打开“添加站点”对话框
  4. 选择存档,浏览到目录/编译器/ /linux/ide_support,选择.zip file 以 com.intel.dpcpp.compiler 开头,然后选择 OK
  5. 选择以 Intel 开头的选项,选择 Next,然后按照安装说明进行操作
  6. 当系统询问您是否要重新启动 Eclipse* 时,选择是

构建新项目或打开现有项目。

  1. 在 Eclipse 上打开现有项目或创建新项目
  2. 右键单击项目 > 属性 > C/C++ 构建 > 工具链编辑器
  3. 从右侧面板中选择 Intel DPC++/C++ Compiler

设置构建配置。

  1. 在 Eclipse 上打开现有项目
  2. 右键单击项目 > 属性 > C/C++ 构建 > 设置
  3. 在右侧面板中创建或管理构建配置

从命令行构建程序
使用以下步骤测试您的编译器安装并构建程序。英特尔-Get-Started-with-the-oneAPI-DPC ++-C++-Compiler-FIG-3

  1. 使用文本编辑器创建一个 file 名为 hello-world.cpp,内容如下:
  2. 编译 hello-world.cpp:
    icpx hello-world.cpp -o 你好世界
    -o 选项指定 file 生成的输出的名称。
  3. 现在你有一个名为 hello-world 的可执行文件,它可以运行并会立即提供反馈:英特尔-Get-Started-with-the-oneAPI-DPC ++-C++-Compiler-FIG-4

哪些输出
您可以使用编译器选项来指导和控制编译。 对于前ample,你可以创建对象 file 并分两步输出最终的二进制文件:

  1. 编译 hello-world.cpp:英特尔-Get-Started-with-the-oneAPI-DPC ++-C++-Compiler-FIG-5-c 选项可防止在此步骤进行链接。
  2. 使用 icpx 编译器链接生成的应用程序目标代码并输出可执行文件:英特尔-Get-Started-with-the-oneAPI-DPC ++-C++-Compiler-FIG-6
    -o 选项指定生成的可执行文件 file 姓名。 有关可用选项的详细信息,请参阅编译器选项。

Windows 入门

开始之前

设置环境变量
编译器集成到以下版本的 Microsoft Visual Studio* 中:

  • Visual Studio 2022
  • Visual Studio 2019
  • Visual Studio 2017

笔记 自英特尔® oneAPI 2017 版本起,对 Microsoft Visual Studio 2022.1 的支持已弃用,并将在未来版本中删除。

要获得 Visual Studio 中的全部功能,包括调试和开发,需要 Visual Studio Community Edition 或更高版本。 Visual Studio Express Edition 仅允许命令行构建。 对于所有版本,必须选择 Microsoft C++ 支持作为 Visual Studio 安装的一部分。 对于 Visual Studio 2017 及更高版本,您必须使用自定义安装来选择此选项。
您通常不需要在 Windows 上设置环境变量,因为编译器命令行窗口会自动为您设置这些变量。 如果您需要设置环境变量,请按照套件特定的入门文档中的描述运行环境脚本。
默认安装目录( ) 是 C:\Program Files (x86)\Intel\oneAPI。

安装 GPU 驱动程序(可选)
要为英特尔 GPU 开发和运行应用程序,您必须首先安装最新的英特尔 GPU 驱动程序。

选项 1:使用 Microsoft Visual Studio 中的命令行

英特尔® oneAPI DPC++/C++ 编译器提供多个驱动程序:英特尔-Get-Started-with-the-oneAPI-DPC ++-C++-Compiler-FIG-7 英特尔-Get-Started-with-the-oneAPI-DPC ++-C++-Compiler-FIG-8

使用以下语法调用编译器:英特尔-Get-Started-with-the-oneAPI-DPC ++-C++-Compiler-FIG-9

要从 Microsoft Visual Studio 中使用命令行调用编译器,请打开命令提示符并输入编译命令。 对于前amp乐:英特尔-Get-Started-with-the-oneAPI-DPC ++-C++-Compiler-FIG-10

对于 SYCL 编译,将 -fsycl 选项与 C++ 驱动程序一起使用:英特尔-Get-Started-with-the-oneAPI-DPC ++-C++-Compiler-FIG-11

笔记: 使用 -fsycl 时,假定 -fsycl-targets=spir64,除非在命令中明确设置了 -fsycl-targets。

选项 2:使用 Microsoft Visual Studio
Microsoft Visual Studio 中英特尔® DPC++/C++ 编译器的项目支持
适用于 DPC++ 的新 Microsoft Visual Studio 项目自动配置为使用英特尔® oneAPI DPC++/C++ 编译器。
必须手动配置新的 Microsoft Visual C++* (MSVC) 项目以使用英特尔® oneAPI DPC++/C++ 编译器。

笔记: 基于 NET 的 CLR C++ 项目类型不受英特尔® oneAPI DPC++/C++ 编译器支持。 具体的项目类型会根据你的 Visual Studio 版本而有所不同,例如amp文件:CLR 类库、CLR 控制台应用程序或 CLR 空项目。

在 Microsoft Visual Studio 中使用英特尔® DPC++/C++ 编译器
具体步骤可能因使用的 Microsoft Visual Studio 版本而异。

  1. 创建 Microsoft Visual C++ (MSVC) 项目或打开现有项目。
  2. 在解决方案资源管理器中,选择要使用英特尔® oneAPI DPC++/C++ 编译器构建的项目。
  3. 打开项目 > 属性。
  4. 在左窗格中,展开 Configuration Properties 类别并选择 General 属性页。
  5. 在右侧窗格中,将 Platform Toolset 更改为您要使用的编译器:
    • 对于带有 SYCL 的 C++,选择英特尔® oneAPI DPC++ 编译器。
    • 对于 C/C++,有两个工具集。
      选择英特尔 C++ 编译器(前任ample 2021) 来调用 icx。
      选择英特尔 C++ 编译器(前任ample 19.2) 来调用 icl。
      或者,您可以通过选择项目 > 英特尔编译器 > 使用英特尔 oneAPI DPC++/C++ 编译器,将编译器版本指定为所选项目的所有支持平台和配置的工具集。
  6. 重建,使用 Build > Project only > Rebuild 为单个项目或 Build > Rebuild Solution 为解决方案。

选择编译器版本
如果您安装了多个版本的英特尔® oneAPI DPC++/C++ 编译器,您可以从“编译器选择”对话框中选择所需的版本:

  1. 选择一个项目,然后转到工具 > 选项 > 英特尔编译器和库 > > 编译器,其中值为 C++ 或 DPC++。
  2. 使用 Selected Compiler 下拉菜单选择合适的编译器版本。
  3. 选择“确定”。

切换回 Microsoft Visual Studio C++ 编译器
如果您的项目使用英特尔® oneAPI DPC++/C++ 编译器,您可以选择切换回 Microsoft Visual C++ 编译器:

  1. 在 Microsoft Visual Studio 中选择您的项目。
  2. 右键单击并从上下文菜单中选择英特尔编译器 > 使用 Visual C++。

此操作更新解决方案 file 使用 Microsoft Visual Studio C++ 编译器。 除非您选择不清除项目,否则受影响项目的所有配置都会自动清除。 如果您选择不清理项目,您将需要重建更新的项目以确保所有源 files 是用新的编译器编译的。

从命令行构建程序
使用以下步骤测试您的编译器安装并构建程序。

  1. 使用文本编辑器创建一个 file 名为 hello-world.cpp,内容如下:
    #包括int main() std::cout << “你好,世界!\n”; 返回 0;
  2. 编译 hello-world.cpp:
    icx 你好世界.cpp
  3. 现在你有了一个名为 hello-world.exe 的可执行文件,它可以运行并立即给出反馈:
    你好-world.exe

输出:
你好世界!

您可以使用编译器选项来指导和控制编译。 对于前ample,你可以创建对象 file 并分两步输出最终的二进制文件:

  1.  编译 hello-world.cpp:
    icx hello-world.cpp /c /Fohello-world.obj
    /c 选项阻止在此步骤进行链接,而 /Fo 指定对象的名称 file.
  2. 使用 icx 编译器链接生成的应用程序目标代码并输出可执行文件:
    icx hello-world.obj /Fehello-world.exe
  3. /Fe 选项指定生成的可执行文件 file 姓名。 有关可用选项的详细信息,请参阅编译器选项。

编译并执行amp密码

多码amp为英特尔® oneAPI DPC++/C++ 编译器提供了文件,以便您可以探索编译器功能并熟悉它的工作原理。 对于前amp乐:

英特尔-Get-Started-with-the-oneAPI-DPC ++-C++-Compiler-FIG-17英特尔-Get-Started-with-the-oneAPI-DPC ++-C++-Compiler-FIG-18

下一步

  • 使用最新的oneAPI Code Samp文件并遵循英特尔® oneAPI 培训资源。
  • 探索英特尔® 开发人员专区上的英特尔® oneAPI DPC++/C++ 编译器开发人员指南和参考。

文件/资源

英特尔 oneAPI DPC ++/C++ 编译器入门 [pdf] 用户指南
开始使用 oneAPI DPC C 编译器,开始使用 oneAPI DPC C 编译器

参考

发表评论

您的电子邮件地址不会被公开。 必填字段已标记 *