Intel oneAPI学习笔记之基本概念&六大工具包一览

Intel oneAPI定义

oneAPI 基本架构

oneAPI是什么?

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

oneAPI 开放规范基于行业标准和现有开发者编程模型,广泛适用于不同架构和来自不同供应商的硬件。oneAPI 行业计划鼓励生态系统内基于oneAPI规范的合作以及兼容 oneAPI的实践。

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

总的来说,单说 Intel oneAPI 只是一个编程模型、一个行业规范,二 Intel oneAPI 相关产品如 Intel oneAPI Base ToolkitIntel oneAPI HPC Toolkit以及Intel AI Analytics Toolkit则是基于 Intel oneAPI 这一编程模型开发的产品,可以在这里下载https://software.intel.com/content/www/us/en/develop/tools/oneapi/all-toolkits.html

oneAPI 开放式规范包括什么?

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

Data Parallel C++是什么?

DPC++ 是基于大众熟悉的 C 和 C++ 语言,专门为 oneAPI 设计的主要编程语言。它融合了来自 Kronos Group 的 SYCL ,从而可以支持跨 CPU 和加速器上的数据并行和异构编程,目的是为了简化编程以及提高代码在不同硬件上的可重用性,同时能根据特定的加速器进行调优。DPC++项目向公众开放,并将通过开发者们的共同努力不断发展。

也就是说,DPC++其实和CUDA语言类似的,也能实现不同硬件上的异构编程。

OpenCl 是什么?

(全称Open Computing Language,开放运算语言)是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码,而且广泛适用于多核心处理器(CPU)、图形处理器(GPU)、Cell类型架构以及数字信号处理器(DSP)等其他并行处理器,在游戏、娱乐、科研、医疗等各种领域都有广阔的发展前景。

CUDA是什么?

  • 在 NVIDIA 图形处理器上提供标准C编程语言
  • 为在支持 CUDA 的 NVIDIA GPU 上进行并行计算提供了统一的软硬件解决方案
  • 支持 CUDA 的 GPU 支持并行数据缓存和线程执行管理器
  • 标准 FFT 和 BLAS 数值程序库
  • 针对计算的专用 CUDA 驱动
  • 经过优化的,从中央处理器(CPU)到支持 CUDA 的 GPU 的直接上传、下载通道
  • CUDA 驱动可与 OpenGL 和 DirectX 图形驱动程序实相互操作
  • 支持 Linux 32位/64位、MacOS 32位/64位以及Windows32位/64位 操作系统
  • 为了研究以及开发语言的目的,CUDA 提供对驱动程序的直接访问,以及汇编语言级的访问。
  • CUDA 兼容的 GPU 包括很多:从低功耗的笔记本上用的 GPU 到高性能的多 GPU 的系统。

不同的 oneAPI 工具包都包含了什么?

目前 oneAPI 官网中有六个工具包,几乎涵盖了高性能计算、物联网、渲染、人工智能、大数据分析这些领域。

Intel® oneAPI Base Toolkit

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

  • Intel® oneAPI Collective Communications Library
  • Intel® oneAPI Data Analytics Library
  • Intel® oneAPI Deep Neural Networks Library
  • Intel® oneAPI DPC++/C++ Compiler
  • Intel® oneAPI DPC++ Library
  • Intel® oneAPI Math Kernel Library
  • Intel® oneAPI Threading Building Blocks
    · Intel® oneAPI Video Processing Library
  • Intel® Advisor
  • Intel® Distribution for GDB*
  • Intel® Distribution for Python*
  • Intel® DPC++ Compatibility Tool
  • Intel® FPGA Add-on for oneAPI Base Toolkit
  • Intel® Integrated Performance Primitives
  • Intel® VTune™ Profiler

Intel® oneAPI HPC Toolkit

Intel® oneAPI HPC Toolkit 这个工具包提供可扩展的快速C ++、Fortran、OpenMP和MPI应用程序。从某种程度上来说 Intel® oneAPI Base ToolkitIntel® oneAPI HPC Toolkit 基本就包含Intel Parallel Studio XE的功能了,关键是免费,实在太好了。该工具包包括以下组件:

  • Intel® oneAPI DPC++/C++ Compiler
  • Intel® C++ Compiler Classic
  • Intel® Cluster Checker
  • Intel® Fortan Compiler (Beta)
  • Intel® Fortran Compiler Classic
  • Intel® Inspector
  • Intel® MPI Library
  • Intel® Trace Analyzer and Collector

Intel® oneAPI IoT Toolkit

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

  • Intel® oneAPI DPC++/C++ Compiler
  • Intel® C++ Compiler Classic
  • Intel® Inspector
  • Eclipse* IDE
  • IoT Connection Tools
  • Linux* Kernel Build Tools

Intel® oneAPI Rendering Toolkit

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

  • Intel® Embree
  • Intel® Open Volume Kernel Library
  • Intel® Open Image Denoise
  • Intel® OpenSWR
  • Intel® OSPRay
  • Intel® OSPRay Studio
  • Intel® OSPRay for Hydra*

Intel® AI Analytics Toolkit

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

  1. 在Intel XPUs 上交付高性能深度学习(DL)训练,并使用Intel优化的DL框架(TensorFlow和PyTorch)、预先训练的模型和低精度工具,将快速推理集成到您的AI开发工作流中。
  2. 使用计算密集型 Python 包:Modin*、NumPy、Numba、scikit-learn和为英特尔优化的 XGBoost 实现数据分析和机器学习工作流的 drop-in 加速。
  3. 获得直接访问英特尔分析和 AI 优化,以确保您的软件一起无缝工作。

该工具包工具包包括以下组件:

  • Intel® Distribution for Python*
  • Intel® Optimization for PyTorch*
  • Intel® Optimization for TensorFlow*
  • Intel® Optimization of Modin* (available through Anaconda only)
  • Intel® Low Precision Optimization Tool
  • Model Zoo for Intel® Architecture
    CUDA 是不支持Intel和AMD显卡加速的,使用此工具包,那就相当于可以用 Intel 的显卡来加速Pytorch啊Tensorflow以及其他 AI 运算了,这可能是Intel下的一大步棋,接下来我会重点体验这个工具包。

Intel® Distribution of OpenVINO™ Toolkit

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

  1. 使深度学习推理从边缘到云
  2. 加速人工智能工作负载,包括计算机视觉、音频、演讲,语言,和推荐系统
  3. 支持异构执行在英特尔架构和AI加速器CPU、iGPU,英特尔Movidius视觉处理单元(VPU)、FPGA,和英特尔高斯 & 神经加速器(Intel® GNA)
  4. 使用一个通用的API加速投放市场的时间通过图书馆的功能和preoptimized内核包括优化OpenCV的呼声,OpenCL内核和其他行业工具和库。

该工具包包含以下组件:

  • Model Optimizer
  • Deep Learning Workbench
  • Inference Engine
  • Deployment Manager
  • OpenCV*
  • DL Streamer
  • Post Training Optimization Tool

在哪获取 Intel oneAPI 的各种资源?

Intel oneAPI 推出发行并不久,非官方相关的资料很少,但是好在 Intel 足够重视,在 oneAPI 官网基本能找到所有资料。

各种工具包还是得去 Intel 官网下载,这里我推荐这个网址(https://software.intel.com/content/www/us/en/develop/tools/oneapi/all-toolkits.html),里面可以下载所有的工具包。

我的了解还不是很多,如果大家有其他资源欢迎分享。

  • 11
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: "Zynq-Linux移植学习笔记"是一篇关于在Zynq SoC平台上移植Linux操作系统的学习笔记。该笔记主要介绍了如何在Zynq平台上搭建交叉编译环境、编译内核、制作根文件系统以及启动Linux系统等方面的知识。通过学习这篇笔记,读者可以了解到如何将Linux操作系统移植到Zynq平台上,并且可以通过实践来深入理解相关的知识和技 ### 回答2: Zynq Linux移植是搭建Zynq硬件平台和在该平台上运行Linux系统的过程。它包括了硬件的设计和软件的开发,这有助于实现在Zynq平台上开发Linux应用程序的目标。 首先,进行Zynq Linux移植前需要研究设备的结构和硬件构造。zynq硬件平台包含两个主要组成部分:PS和PL。PS负责处理器系统和外设的管理和控制,PL则是可编程逻辑,支持FPGA逻辑的定制化,同时也支持外设的实现。在移植时,需要设计PS的硬件架构和软件驱动程序,同时也需要配置PL。一般情况下,需要进行如(Xilinx SDK)和(Petalinux)等的软件开发环境安装和配置。 接下来,进行Linux系统的移植。这部分工作需要了解Linux内核的结构、功能和特性,然后根据硬件架构,对Linux系统进行调整和定制,构建出适合硬件平台的Linux系统。这个过程需要进行的工作包括:解编译适合SOC的内核、制定设备树、调整内核参数等。 最后,这些工作完成后,就可以在Zynq平台上编译和运行Linux应用程序了。开发者可以尝试通过开发板上的GPIO、I2C、SPI或UART等接口,学习Linux的设备驱动程序、网络编程、文件系统管理等知识点。可逐步学习如何掌握Linux的shell、打包工具、交叉编译工具等。 总结来说,Zynq Linux移植工作是基础的硬件构造、嵌入式软件和Linux知识的综合应用,需要开发者有至少三方面的技能。需要熟练编写硬件设计,熟练掌握Linux内核编程以及Linux系统软件的维护和管理。这些技能的应用能力对于移植Zynq平台Linux系统和应用程序的开发工程师来说是非常必要的。 ### 回答3: 随着嵌入式系统的广泛应用,zynq-linux移植成为了嵌入式开发的一个重要研究课题。zynq-linux移植涉及到许多方面的知识,在学习过程中需要注意以下几点: 一、zynq-linux移植前需要了解的基础知识 在开始进行zynq-linux移植之前,需要对Linux系统、ARM技术、FPGA开发、C语言等基础知识有一定的了解。同时需要熟悉zynq系列的基本架构和应用场景。 二、zynq-linux移植必要的步骤 zynq-linux移植的过程主要分为以下几个步骤:首先是确定硬件平台和环境搭建;其次是进行内核编译和配置;然后是uboot编译和烧录;最后是Linux文件系统的制作和烧录。在整个移植过程中,需要注意各个步骤的顺序和详细操作,确保每一步都正确完成。 三、zynq-linux移植中可能会遇到的问题 在zynq-linux移植过程中,可能会遇到各种问题,例如硬件平台的兼容性、内核配置的错误、uboot烧录问题、文件系统制作出错等。在遇到这些问题时,需要耐心地进行排查和解决,同时也可以借助搜索引擎和社区的技术支持。 四、zynq-linux移植之后的应用与拓展 zynq-linux移植成功之后,可以将其应用于各种嵌入式系统中,例如网络设备、智能家居、工业控制等领域。同时,还可以进行拓展和优化,例如添加各种驱动程序、优化系统性能等。 总之,在进行zynq-linux移植的学习和实践中,需要认真学习基础知识,仔细操作每个步骤,及时排查并解决问题,并在成功移植之后持续进行应用与拓展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万古霉素(Vancomycin)

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值