Intel oneAPI 初见

软件工业、互联网、物联网、AI、大数据等技术的持续发展,让越来越多的传统业务向着信息化、自动化、智能化的方向上快速演进。这种演化的过程中不可避免的造成了软、硬件体系的蓬勃发展,市场上架构各异的硬件芯片,纷繁多样的语言、各式各样的商业模式都是其推动的直接产物,然而也正是这些多样化、多元化的环境使得跨架构的系统设计变得越来越复杂、愈来愈让人难以理解。

在这种应用环境下,开发者在集成多种架构芯片、系统阶段性升级或改造时将必须面对如下挑战:

而Intel oneAPI 正是为解决这些问题而诞生,简单来说它是一个跨行业、开放、标准统一、简化的编程模型,旨在促进社区和行业合作、简化跨多架构的开发过程、解决跨体系及供应商代码重用,为跨 CPU、GPU、FPGA、专用加速器的开发者提供统一的开发体验。
在这种模型下,开发者可以自由的进行最佳的技术选型、最大限度的利用所有硬件的价值、同时可以使用归一化的开发语言进行开发与部署。

Intel oneAPI 溯源

跨架构(CPU、GPU、FPGA及其他加速器)开发能力对于处理数据密集型工作负载极为重要。数据密集型工作负载往往涉及多种架构体系去完成其业务,而当下的业务处理方式往往是每一个硬件平台独立维护一套孤立的代码库,这些孤立代码库需要使用不同语言、库和软件工具进行编程。这种开发模式和模型是极其复杂、费时、低效的,同时也抑制了技术的创新与突破。Intel oneAPI基于打破这种局面此而诞生,旨在为全球开发人员搭建一座从现有代码和技能过渡到即将来临的xPU时代的桥梁。
oneAPI跨架构开发模型基于行业标准及现有开发编程模型,支持广泛的行业生态系统,适配不同架构和来自不同供应商的硬件。oneAPI 行业计划鼓励生态系统内基于oneAPI规范的合作以及兼容 oneAPI的实践,以此来推动应用开发领域的新演进。

英特尔oneAPI beta产品是英特尔基于oneAPI的实现,它包括了oneAPI标准组件如直接编程工具(Data Parallel C++,其与C++、python、SYCL、OpenMP、Fortran和MPI兼容)、含有一系列性能库的基于API的编程工具,以及先进的分析、调试工具等组件。开发人员从现在开始就可以在英特尔DevCloud for oneAPI上对基于多种英特尔架构(包括英特尔至强可扩展处理器、带集成显卡的英特尔酷睿处理器、英特尔FPGA如英特尔Arria、Stratix等)的代码和应用进行测试。

其提供的通用、开放的编程体验,让开发者可以自由选择架构而无需在性能上作妥协,同时大幅度的降低由于使用不同代码库、编程语言、编程工具和工作流程所带来的复杂性。相对于今天的基于单个厂商的封闭式编程环境,oneAPI为开发者提供了极富竞争力、也更先进的可替代选择,帮助他们在保留现有软件投资的基础上,搭建一座无缝连接的桥梁,从而为未来的多架构世界创造更多丰富的应用程序。它是英特尔“软件先行”战略的重要体现,英特尔相信这一战略将定义和引领一个人工智能日益融合、异构及多架构的编程时代。

Intel oneAPI 蕴能

这一开放式规范包括一种跨架构的编程语言Data Parallel C++(DPC++)、一套用于API编程的函数库以及底层硬件接口(oneAPI Level Zero)。有了这些组件,英特尔和其它企业就能创建他们自己的oneAPI实现来支持他们自己的产品,或基于oneAPI进行新产品开发。

Data Parallel C++


DPC++是基于大众熟悉的C和C++语言,专门为oneAPI设计的主要编程语言。它融合了来自Kronos Group的SYCL*(SYCL是OpenCL的高级编程模型,作为基于纯C ++ 11和C ++ 14的单源特定于域的嵌入式语言, 用于提高编程效率),以支持数据并行性和异构编程。拥有强大的OneAPI库从而可以支持跨CPU和加速器上的数据并行和异构编程,目的是为了简化编程以及提高代码在不同硬件上的可重用性,同时能根据特定的加速器进行调优。
DPC++语言增强将会通过一个开发者社区项目来进行扩展,以简化数据并行编程。该项目向公众开放,并将通过开发者们的共同努力不断发展。

丰富的oneAPI 工具包:

  • Intel® oneAPI Base Toolkit: 其是 oneAPI 其他产品的基础,包含了几个我们在 Parallel Studio中常用的软件以及 icc 编译器、MPI、DPCPP 等。它使开发人员都可以跨CPU、GPU和FPGA构建、测试和部署以性能为中心、以数据为中心的应用程序。其包括以下组件:

    基础库当中的每个库都封装了一个技术领域下基本的运算能力,用Intel® oneAPI Math Kernel Library举例:

    具体包含的模块如下:

  • Intel® oneAPI HPC Toolkit: 用于在企业到云以及从HPC到AI应用程序的C ++、Fortran、OpenMP和MPI应用程序上构建高性能、可扩展的并行代码。它包括以下组件:

Intel® oneAPI Base Toolkit 加 Intel® oneAPI HPC Toolkit 基本就包含Intel Parallel Studio XE的功能

  • Intel® oneAPI IoT Toolkit: 它主要用于建立可在网络边缘运行的高性能、高效、可靠的解决方案,属于物联网领域。其包括以下组件:

  • Intel® oneAPI Rendering Toolkit: 它主要用于创建高性能、高保真的可视化应用程序,适用于各种渲染领域。其含以下组件:

  • Intel® AI Analytics Toolkit: 此工具包提供优化的深度学习框架和高性能Python库,加速端到端机器学习和数据科学库。这些组件是使用 oneAPI 库构建的,用于低级计算优化。这可以最大化从预处理到机器学习的性能。使用这个工具包,我们可以:

  • Intel® Distribution of OpenVINO™ Toolkit: 其用于从设备到云部署高性能推理应用程序。其基于卷积神经网络(CNN),可将工作负载扩展到整个英特尔®硬件(包括加速器),并最大限度地提高性能。该工具包可以:

Inter DPC++兼容性工具


通过这个工具可以快速的实现CUDA编写的代码迁移到DPC++上,大约80%-90%的代码可以自动迁移并提供内联注释,最大限度的帮助开发人员完成代码的移植。

Intel oneAPI 启航

Intel oneAPI 的工具包都是免费提供的,在其官方网站上software.inter.com/oneapi上,有极其丰富的示例代码、指引教程,同时也开放线上研讨论坛,并提供云上的实验环境,方便使用者去练习及了解这一套体系。

一个简单的DPC++程序示例


DPC++程序执行的过程大致如下:

更多程序示例

Intel oneAPI介绍相关推荐

  1. 安装Intel Parallel Studio xe→Intel oneAPI

    安装Intel Parallel Studio xe→Intel oneAPI+HPC Toolkit 介绍 Intel® oneAPI Base Toolkit Intel oneAPI 的工具包都 ...

  2. Intel oneAPI学习笔记之环境变量配置运行一个PyTorch程序

    前面两篇文章: Intel oneAPI学习笔记之基本概念&六大工具包一览 Intel oneAPI 学习笔记之 Centos 下安装 Intel® oneAPI Base Toolkit 和 ...

  3. Intel® oneAPI Toolkit编译VASP

    一.说明 本文描述了如何使用最新版intel编译器Intel® oneAPI Toolkit来编译VASP.有关Intel® oneAPI Toolkit的安装请参考另一篇博客Ubuntu18.04安 ...

  4. Ubuntu18.04安装Intel® oneAPI Toolkit

    一.安装前准备 1.1 更新系统安装必要软件 安装Intel® oneAPI HPC Toolkit之前推荐把系统更新至最新. zhy@pc:~$ sudo apt update zhy@pc:~$ ...

  5. Intel oneAPI Base Toolkit 安装教程(Linux)

    简介 Intel oneAPI Base Toolkit 是英特尔公司开发的通用计算工具包. 工具 Intel oneAPI Base Toolkit 是一个集成工具包,包含的组件如下: Intel® ...

  6. 英特尔OneAPI介绍

    oneAPI是什么? Intel oneAPI 是一个跨行业.开放.基于标准的统一的编程模型,它为跨 CPU.GPU.FPGA.专用加速器的开发者提供统一的体验,包含两个组成部分∶ 一项行业计划和一款 ...

  7. Intel® oneAPI Base Toolkit+Intel® oneAPI HPC Toolkit安装教程+环境变量设置

    安装过程主要参考:https://blog.csdn.net/qq_40180414/article/details/114540317 环境变量过程主要参考:https://blog.csdn.ne ...

  8. Intel® oneAPI Base Toolkit+Intel® oneAPI HPC Toolkit安装教程

    Intel® oneAPI Base Toolkit+Intel® oneAPI HPC Toolkit安装教程 1.写在前面 2.工具包地址 3.Base Toolkit 4.HPC Toolkit ...

  9. 使用VS2019+Intel OneAPI (ifort)+Intel MPI编译和运行MPI程序与Coarray程序

    使用VS2019+Intel OneAPI (ifort)+Intel MPI编译和运行MPI程序与Coarray程序 一.安装环境 安装vs2019 安装Intel OneAPI Base Tool ...

最新文章

  1. “ px”,“ dip”,“ dp”和“ sp”有什么区别?
  2. rand和srand
  3. produces在@requestMapping中的使用方式和作用
  4. 浅析PetShop程序中的购物车和订单处理模块(Profile技术,异步MSMQ消息)
  5. 霍金承认有鬼神,为什么霍金和牛顿这些人最后都信神
  6. 苹果的倔强!今秋新iPhone外观设计将与2018年款非常相似
  7. Java类加载过程梳理,一篇搞定
  8. 默纳克系统服务器看平衡系数,默纳克启动停车舒适感调整
  9. 全球加密货币总市值突破7500亿美元 比特币市值突破5200亿美元
  10. oracle使用心得(3)——PLSQL导出pde文件乱码
  11. LaTeX数学公式环境
  12. 【CNN】——涨点模块SE,CBAM,CA对比
  13. Android获取设备号SSAID (Android ID) 和 IMEI
  14. VRTK_Example解释
  15. 单点登录的简单理解(SSO)
  16. 什么叫能力不行,什么叫术业有专攻
  17. [C/C++] 1046 划拳(15 分)
  18. 【Python实战】“特种兵”们的专属游戏助手,助你吃鸡:极品小助手也是棒呆了~(“大吉大利,今W吃鸡”)
  19. ubuntu18.04安装XMind8
  20. 电子小制作:户外下雨传感装置

热门文章

  1. 前端百题斩【019】——数组中方法原理早知道
  2. 机器学习笔记 - 全卷积网络(FCN)
  3. MIDI 转3.5mm音频接口连接方式
  4. sonar的搭建和使用
  5. 轻松享受音乐nbsp;教你海量同步iPhone歌曲
  6. 利用计算机名称共享打印机步骤,如何连接共享打印机,详细教您电脑如何连接共享打印机...
  7. diff详解,读懂diff结果
  8. 2021最新SEO按天扣费系统源码完整版
  9. 大数据架构-使用HBase和Solr将存储与索引放在不同的机器上
  10. 如何写好一份“漏洞报告”