英特尔 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++ 编译器论坛。
英特尔® 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 入门
开始之前
设置环境变量
在使用编译器之前,您必须先使用初始化实用程序获取环境脚本来设置环境变量。 这将一步初始化所有工具。
- 确定你的安装目录, :
- a. 如果您的编译器是由 root 用户或 sudo 用户安装在默认位置,则编译器将安装在 /opt/intel/oneapi 下。 在这种情况下, 是 /opt/intel/oneapi。
- b. 对于非 root 用户,使用 intel/oneapi 下的主目录。 在这种情况下,
将是 $HOME/intel/oneapi。 - c. 对于集群或企业用户,您的管理团队可能已经在共享网络上安装了编译器 file 系统。 请咨询您当地的管理人员以了解安装位置
( ).
- 为您的 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++ 编译器提供多个驱动程序:
使用以下语法调用编译器:
{编译器驱动} [选项] 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 插件。
- 启动日食
- 选择帮助 > 安装新软件
- 选择添加以打开“添加站点”对话框
- 选择存档,浏览到目录/编译器/ /linux/ide_support,选择.zip file 以 com.intel.dpcpp.compiler 开头,然后选择 OK
- 选择以 Intel 开头的选项,选择 Next,然后按照安装说明进行操作
- 当系统询问您是否要重新启动 Eclipse* 时,选择是
构建新项目或打开现有项目。
- 在 Eclipse 上打开现有项目或创建新项目
- 右键单击项目 > 属性 > C/C++ 构建 > 工具链编辑器
- 从右侧面板中选择 Intel DPC++/C++ Compiler
设置构建配置。
- 在 Eclipse 上打开现有项目
- 右键单击项目 > 属性 > C/C++ 构建 > 设置
- 在右侧面板中创建或管理构建配置
从命令行构建程序
使用以下步骤测试您的编译器安装并构建程序。
- 使用文本编辑器创建一个 file 名为 hello-world.cpp,内容如下:
- 编译 hello-world.cpp:
icpx hello-world.cpp -o 你好世界
-o 选项指定 file 生成的输出的名称。 - 现在你有一个名为 hello-world 的可执行文件,它可以运行并会立即提供反馈:
哪些输出
您可以使用编译器选项来指导和控制编译。 对于前ample,你可以创建对象 file 并分两步输出最终的二进制文件:
- 编译 hello-world.cpp:
-c 选项可防止在此步骤进行链接。
- 使用 icpx 编译器链接生成的应用程序目标代码并输出可执行文件:
-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++ 编译器提供多个驱动程序:
使用以下语法调用编译器:
要从 Microsoft Visual Studio 中使用命令行调用编译器,请打开命令提示符并输入编译命令。 对于前amp乐:
对于 SYCL 编译,将 -fsycl 选项与 C++ 驱动程序一起使用:
笔记: 使用 -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 版本而异。
- 创建 Microsoft Visual C++ (MSVC) 项目或打开现有项目。
- 在解决方案资源管理器中,选择要使用英特尔® oneAPI DPC++/C++ 编译器构建的项目。
- 打开项目 > 属性。
- 在左窗格中,展开 Configuration Properties 类别并选择 General 属性页。
- 在右侧窗格中,将 Platform Toolset 更改为您要使用的编译器:
- 对于带有 SYCL 的 C++,选择英特尔® oneAPI DPC++ 编译器。
- 对于 C/C++,有两个工具集。
选择英特尔 C++ 编译器(前任ample 2021) 来调用 icx。
选择英特尔 C++ 编译器(前任ample 19.2) 来调用 icl。
或者,您可以通过选择项目 > 英特尔编译器 > 使用英特尔 oneAPI DPC++/C++ 编译器,将编译器版本指定为所选项目的所有支持平台和配置的工具集。
- 重建,使用 Build > Project only > Rebuild 为单个项目或 Build > Rebuild Solution 为解决方案。
选择编译器版本
如果您安装了多个版本的英特尔® oneAPI DPC++/C++ 编译器,您可以从“编译器选择”对话框中选择所需的版本:
- 选择一个项目,然后转到工具 > 选项 > 英特尔编译器和库 > > 编译器,其中值为 C++ 或 DPC++。
- 使用 Selected Compiler 下拉菜单选择合适的编译器版本。
- 选择“确定”。
切换回 Microsoft Visual Studio C++ 编译器
如果您的项目使用英特尔® oneAPI DPC++/C++ 编译器,您可以选择切换回 Microsoft Visual C++ 编译器:
- 在 Microsoft Visual Studio 中选择您的项目。
- 右键单击并从上下文菜单中选择英特尔编译器 > 使用 Visual C++。
此操作更新解决方案 file 使用 Microsoft Visual Studio C++ 编译器。 除非您选择不清除项目,否则受影响项目的所有配置都会自动清除。 如果您选择不清理项目,您将需要重建更新的项目以确保所有源 files 是用新的编译器编译的。
从命令行构建程序
使用以下步骤测试您的编译器安装并构建程序。
- 使用文本编辑器创建一个 file 名为 hello-world.cpp,内容如下:
#包括int main() std::cout << “你好,世界!\n”; 返回 0; - 编译 hello-world.cpp:
icx 你好世界.cpp - 现在你有了一个名为 hello-world.exe 的可执行文件,它可以运行并立即给出反馈:
你好-world.exe
输出:
你好世界!
您可以使用编译器选项来指导和控制编译。 对于前ample,你可以创建对象 file 并分两步输出最终的二进制文件:
- 编译 hello-world.cpp:
icx hello-world.cpp /c /Fohello-world.obj
/c 选项阻止在此步骤进行链接,而 /Fo 指定对象的名称 file. - 使用 icx 编译器链接生成的应用程序目标代码并输出可执行文件:
icx hello-world.obj /Fehello-world.exe - /Fe 选项指定生成的可执行文件 file 姓名。 有关可用选项的详细信息,请参阅编译器选项。
编译并执行amp密码
多码amp为英特尔® oneAPI DPC++/C++ 编译器提供了文件,以便您可以探索编译器功能并熟悉它的工作原理。 对于前amp乐:
下一步
- 使用最新的oneAPI Code Samp文件并遵循英特尔® oneAPI 培训资源。
- 探索英特尔® 开发人员专区上的英特尔® oneAPI DPC++/C++ 编译器开发人员指南和参考。
文件/资源
![]() |
英特尔 oneAPI DPC ++/C++ 编译器入门 [pdf] 用户指南 开始使用 oneAPI DPC C 编译器,开始使用 oneAPI DPC C 编译器 |