一、序言
在2018年底的英特尔架构日上,英特尔英特尔的芯片首席架构师Raja Koduri对外公布了公司正在研发的一个名为oneAPI的软件编程框架,其口号是“No transistor left behind”,这对于程序开发人员而言无异于是将科幻小说中的技术搬进了现实。
oneAPI的目标是提供一个适用于各类计算架构的统一编程模型和应用程序接口,也就是说开发者只需要进行一次开发,就可以让程序代码在跨平台的异构系统上执行,不论是底层硬件是CPU、GPU、FPGA或者其他加速器,都可以在oneAPI的架构下进行切换和优化,从而自由高效的运行程序代码。这种方式高效、智能且自由地实现加速计算,摆脱专有编程模型的经济和技术负担。oneAPI通过开放促进了社区和行业的协作,并支持针对不同的架构和供应商的代码重构。
二、oneAPI介绍
1、oneAPI是什么:oneAPI是一个统一和简化的编程模型,其目标在于简化跨多架构的开发过程,提供一个适用于各类计算架构的统一编程模型和应用程序接口。
2、oneAPI的组成
1.DPC++(数据并行C++)。DPC++是基于C语言和C++语言融合,是一种基于标准的开放式跨行业语言,可代替单一架构专有语言,能支持跨CPU、跨加速器的数据并行,并能让开发人员实现异编程,支持广泛的行业生态系统采纳该技术来推动应用开发领域的新演进。DPC++ = ISO C++ 和 Khronos SYCL 以及社区扩展。
图片引用自英特尔
2.oneAPI 工具套件。这是一整套经过验证的开发人员工具,从CPU扩展到更多加速器。最新的oneAPI产品针对英特尔的CPU、GPU、FPGA进行了深入优化,并包含众多针对不同场景的套件,以达到高效、高性能以及跨平台的性能。
图片引用自英特尔
三、oneAPI的优势
oneAPI解决了程序开发过程中一个普遍的痛点,即普通的软件工程师或算法工程师因为需要强大的算力而去花大量时间学习和掌握硬件相关的开发知识,提供了一个适用于各类计算架构的统一编程模型和应用程序接口,也就是说开发者只需要进行一次开发,就可以让程序代码在跨平台的异构系统上执行,不论是底层硬件是CPU、GPU、FPGA或者其他加速器,都可以在oneAPI的架构下进行切换和优化,从而自由高效的运行程序代码。这就使得普通的软件工程师或算法工程师不必花费大量时间学习和掌握硬件相关的开发知识,从而集中更多精力在程序和算法开发上。
“oneAPI 提供一个通用、开放的编程体验,让开发者可以自由选择架构,无需在性能上作出妥协,也大大降低了使用不同的代码库、编程语言、编程工具和工作流程所带来的复杂性”(--引用自英特尔)
四、结语
oneAPI已经向着成熟发展全面展开,并和许多业内领先企业达成合作,以及和国内高校如北京大学、清华大学、中国科学技术大学等高校展开了合作计划。第三届中国超级算力大会(ChinaSC 2021)上,英特尔与中科院计算所高性能中心共同发布中国首个oneAPI 卓越中心。oneAPI的发展,将科幻照进现实,极大的提升了软件、算法等工程师的工作效率。相信在未来的发展中,oneAPI将凭借自身强大的技术实力和发展,引领行业发展,不断将科幻照进现实。