英特尔oneAPI简介
英特尔oneAPI是英特尔推出的一种统一的软件开发工具套件,旨在简化和加速跨多个不同架构的高性能计算和数据处理应用程序的开发过程。
传统上,开发者需要为不同的硬件架构编写不同的代码,以充分利用每个特定架构的性能优势。例如,使用不同的指令集编写CPU和GPU代码。这种多样化的编程模型增加了开发的复杂性,并限制了应用程序在不同硬件上的可移植性。
oneAPI旨在解决这些问题。它提供了一个统一的编程模型和一组工具,使开发者能够在不同类型的硬件上编写可移植的高性能应用程序。oneAPI支持各种架构,包括CPU、GPU、FPGA和其他加速器。
oneAPI的核心组成部分是Data Parallel C++(DPC++)编程语言和一个名为Intel oneAPI工具包的开发工具集合。DPC++是一种扩展了C++语言的编程语言,支持异构计算,使开发者能够编写适用于不同类型硬件的并行代码。
Intel oneAPI工具包提供了一整套工具和库,包括调试器、性能分析器、优化器等,以帮助开发者进行应用程序的开发、调试和优化。其中一些工具和库是专门针对不同硬件架构进行优化的。
通过使用英特尔oneAPI,开发者可以更轻松地利用多种硬件架构的优势,并获得更高的性能。此外,由于使用了统一的编程模型,应用程序也更容易移植到不同的硬件平台上。
总之,英特尔oneAPI是一个旨在简化和加速跨多个不同架构的高性能计算和数据处理应用程序开发的软件开发工具套件。它提供了统一的编程模型和一套工具,使开发者能够更轻松地编写可移植且高性能的应用程序。
实验过程
准备实验文件及完成 GitHub Repo 复制
在开始 AI 分析工具套件的实验前,用户需要下载和准备相应的实验文件。这一操作通常可以通过命令行完成。从 GitHub 获取实验代码并保存在本地。请 点击 Lab 的菜单 | File | New Launcher | 开启一个新的 Launcher Tab 标签页,在 Launcher 中,已包含有 Terminal 终端服务的图标。
使用 ls 命令确认目录位置,我们将在用户根目录下从 GitHub 复制获取相关实验内容。
DevCloud 已内建支持 git 的相应命令,用户可以直接使用下面的 git clone 命令从网络复制并获取实验内容。
git clone https://github.com/asirvaiy/pytorch_workshop
命令完成后,请用 ls 列出当前目录予以确认 pytorch_workshop 目录已复制完成。
并使用下列命令进入该目录。准备进行下一步解压操作。
DevCloud 中已预置 unzip 功能,在终端 Terminal 分别执行下列两条命令,完成解压和相应目录创建工作。
unzip resnet50_training
unzip resnet50_inference
完成解压后,在用户根目录下的 pytorch_workshop 的两个子目录中,有用于训练和推理实验的 Jupyter Notebook 文件。至此,实验材料的准备工作已完成。
PyTorch 推理实验及性能对比
位于/pytorch_workshop/resnet50_training/ 目录中包含使用 PyTorch 的不同分发优化版本进行训练的实验。请 在左侧文件管理窗口中点击 resnet50_training.ipynb 文件,打开实验环境。
请按顺序完成第一部分 Import Dependencies [ 导入依赖库 ]和第二部分 Create PyTorch data generators [ 创建 PyTorch 数据生成器 ] 的每个代码框内代码的执行。
第三部分 Create the network [ 创建网络 ] 中的第一个代码框中,包含有下载预训练模型,因此请在操作执行和 运行时请特别注意,等待下载进度为 100%完成及本代码框中及其他代码也提示执行完毕后才继续运行后续代码框。第三部分最后一个代码框执行完成会显示选择 CPU 作为训练硬件。
第四部分 Train the model [ 训练网络 ] 中的我们仅需完成第一和第二个代码框的代码执行,以完成基于预训练模 型基础之上的使用标准 PyTorch 以及英特尔优化版本的 PyTorch 分别完成进行若干 Epoch 训练的过程。
第六部分 Make prediction on sample images [ 使用样例图片进行预测 ] 中的我们需要顺序选择并完成执行所有 的代码框,等待系统显示相应图片的预测/判定结果。
执行预测/判定后的回显结果(*实际数值可能会有所不同)