65.9K
CodeProject 正在变化。 阅读更多。
Home

oneAPI – 加速计算的跨架构、多厂商路径

starIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

1.00/5 (1投票)

2022年12月9日

CPOL

6分钟阅读

viewsIcon

5746

本文探讨了 oneAPI 作为加速计算专有编程模型的替代方案。

软件标准化将促进加速器普及

从终端到数据中心,加速器技术在整个计算基础设施中受到了越来越多的关注。用户需求,从管理爆炸式增长的数据到时间关键的业务流程,推动了人们对在缓慢增长的能源预算中实现指数级计算能力的兴趣。

虽然过去十年主要围绕可编程图形加速器(GPU)的讨论,但今天的加速器架构更加多样化。用于人工智能(AI)、高性能计算(HPC)、加密、数据移动和 I/O 以及电信的专用加速器,目前已部署或正在开发中,使用了各种架构:超标量、向量、数据流/空间、矩阵,以及新兴的神经形态和量子计算。除了架构多样性,加速器实现方式也多种多样,从传统的 I/O 连接设备到一致性内存设备,再到与 CPU 紧密集成的设备。

大规模采用加速器的关键挑战在于开发加速器软件的流程、时间和成本,以及维护成本。加速器的关键优势在于它们能够更有效地执行特定任务。虽然通用可编程性程度各不相同——从可用于数据并行计算的 GPU 到为数据哈希或深度学习等特定任务设计的专用 ASIC——但这些加速器的编程工具和模型大多特定于每个单独的设备。虽然设备专用化允许针对特定任务优化性能,但开发人员为一种加速器所做的投资可能无法移植到其他加速器。

新技术通常通过特定厂商、封闭式架构取得初步成功,但要使其普及,就需要出现多厂商标准并最终取代专有先驱。许多因素促成了这个自然周期,包括厂商锁定带来的经济后果;依赖单一厂商的技术和经济风险;以及构建、部署和维护解决方案的成本。对稀缺技能员工的需求进一步加剧了这种情况。因此,客户、最终用户、软件开发人员和社区一直寻求英特尔提供加速计算的标准化解决方案。

什么是 oneAPI?

oneAPI 是一个跨行业、开放、基于标准的统一编程模型,可为各种处理器和加速器架构提供通用的开发人员体验。

oneAPI 包含三个独立元素:开放规范、开源实现和英特尔增强型实现。基于现有标准oneAPI规范是在与社区开发人员的开放协作中开发的。oneAPI 组件规范的开源实现旨在实现 oneAPI 在新硬件架构或软件语言上的快速采用。oneAPI 响应了开发人员的需求,以

  • 避免单厂商、单架构软件的经济和技术劣势;
  • 在实现跨异构硬件性能的同时提高生产力;以及
  • 依赖值得信赖的开发环境,现在和未来。

完整的规范和无障碍的开源代码存储库链接可在 oneAPI 社区网站 上找到。oneAPI 行业倡议鼓励在规范和跨生态系统的兼容 oneAPI 实现方面进行进一步协作。

英特尔的 oneAPI 产品实现了 oneAPI 规范,并为软件开发人员添加了其他基于标准的工具和组件。英特尔的 oneAPI 产品可以作为独立组件提供,也可以作为易于访问的工具包提供,包括包含所有主要 oneAPI 组件的英特尔® oneAPI Base Toolkit,以及针对 HPC、AI 和分析、物联网(IoT)以及高级渲染的领域优化工具包。

基于开放标准的可靠基础

oneAPI 利用英特尔丰富的、高性能的编译器和库的传承,构建了一个开放标准,降低了部署加速计算的相关风险。例如,根据 Evans Data 2021 年开发者调查 1,英特尔® oneAPI 数学内核库 (oneMKL) 规范融合了英特尔® 数学内核库数十年的广泛使用和改进,该库是行业中使用最广泛的高性能数学库。此外,oneAPI 与 Fortran、C/C++、OpenMP 和 MPI 等现有 HPC 编程标准以及 Python 和一套丰富的优化 Python 库兼容,可以轻松集成到现有代码中。开发人员还可以使用一套高级调试器和分析器来分析性能和正确性,并协助将现有代码卸载到加速器。甚至还有工具 2 帮助将专有的 CUDA 代码迁移到开放的 SYCL 语言。这些优势帮助 oneAPI 于 2021 年 11 月获得了 HPCwire 读者选择奖“最佳 HPC 编程工具或技术” 3。通过遵循开放标准,oneAPI 不仅简化了现有代码的加速,还让开发人员相信他们的代码将在未来的架构上运行。

摆脱专有锁定

oneAPI 提供了一种开放的替代方案,摆脱了专有的“围墙花园”,无需被锁定在单一厂商或硬件架构中。它使硬件和软件开发社区能够交付新的加速器,而无需承担建立另一个开发者生态系统的负担。例如,富士通使用英特尔® oneAPI 深度神经网络库 (oneDNN) 4 在 Fugaku 超级计算机上实现了领先的 MLPerf 基准性能 5。此外,oneAPI 允许系统开发人员为他们的特定问题选择最佳架构,并受益于一系列硬件解决方案中的加速器创新。开发人员可以将他们的时间花在创造下一项科学或市场突破上,而不是为下一个硬件平台重写软件。

提高生产力和性能,充分发挥尖端加速硬件的价值

oneAPI 通过允许开发人员维护一个在多个加速器架构上都能实现高性能的单一代码库,简化了软件开发,降低了开发和维护成本。优化编译器和 API 的库实现使开发人员能够利用最新硬件的创新功能。

oneAPI 成功的关键在于选择采用 Khronos Group 开发的 SYCL 语言。SYCL 扩展了现代 C++,支持异构并行,这与为单一加速器架构设计的语言不同。oneAPI 还提供了对 oneMKL 等现有库的标准接口。第三方开发人员已成功通过通用的开源开发实践,将针对非英特尔 CPU 和 GPU 的厂商优化加速器库与 oneAPI 集成。

最后,oneAPI 的开放性为生产力创新提供了途径。从开放接口到开源实现和基础设施,oneAPI 使开发人员能够通过高效、现代和开放的方法独立创新并开发新的语言前端和新硬件后端。

与仅限于单一架构的硬件特定模型或以牺牲性能为代价换取生产力的解释型语言不同,oneAPI 提供了一条更快的途径,可以跨各种加速器部署高性能应用程序。

总结

技术需要标准才能从细分市场扩展到大众市场。开发人员社区要求提供一种替代专有编程模型的加速计算解决方案,而 oneAPI 已经实现了这一目标。oneAPI 倡议为开发人员的选择提供了开放、可靠的途径。

在接下来的几周内,我们将发布论文、博客和文章,深入探讨 oneAPI、其技术优势以及作为开发人员或行业采用者参与 oneAPI 的机会。

12021 年全球开发人员调查,第一卷,Evans Data Corporation
2示例:英特尔® DPC++ 兼容性工具和 https://www.iwocl.org/wp-content/uploads/iwocl-2019-dhpcc-tobias-stauber-resyclator-transforming-cuda-C-source-code-into-sycl.pdf
3HPCwire 在 SC21 期间揭晓 2021 年读者和编辑选择奖获奖者
4HPC 和 AI 在 Fugaku 超级计算机及未来展望方面的举措 以及 A Deep Dive into a Deep Learning Library for the A64FX Fugaku CPU
5MLPerf 基准性能

© . All rights reserved.