本章节翻译by weavingtime@formail.com 原文:Getting Started (intel.com)
目录
并行化
并行性对于有效使用加速器至关重要,因为它们包含许多能够并行执行代码的处理器。有三种方法可以开发并行代码。
编程语言和API
有许多并行编程语言和API可用于表达并行性。oneAPI是异构计算的开放行业标准。 它通过SYCL* 框架支持并行程序开发。 Intel® oneAPI产品具有许多代码生成工具, 可将源程序转换为可在不同加速器上执行的二进制文件。通常的工作流程是用户从串行程序开始, 确定代码中执行时间较长的部分(称为热点),并将它们转换为可以部署到加速器上执行的并行kernel。
编译器
像 OpenMP* 这样的基于指令的方法是另一种开发并行程序的方法。在基于指令的方法中, 程序员向编译器提供关于并行性的提示,而无需显式修改代码。这种方法比从头开始开发并行程序更容易。
库
oneAPI 包括许多库,例如 oneTBB、oneMKL、oneDNN 和 oneVPL,这些库提供在各种加速器架构上运行的常见计算操作的高度优化版本。 根据应用程序的需求,用户可以直接调用这些库中的函数,并获得针对底层架构的高效实现。这是开发并行程序最简单的方法, 前提是库中包含所需函数。例如,机器学习应用程序可以利用oneDNN中优化过的原语。 这些库已经过正确性和性能方面的全面测试,使用它们可以使程序更可靠。