- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 视频嵌入链接 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
基于英特尔架构的AI与HPC融合应用实践
讲座将介绍 AI 与 HPC结合的使用场景,以及满足AI+HPC混合应用的系统设计原则。 讲师还将通过分享真实案例来剖析如何在英特尔® 至强® 平台上优化加速深度学习训练性能。
夏磊 - 英特尔中国首席工程师.人工智能技术中国首席架构师
展开查看详情
1 .基于英特尔架构的AI与HPC融合应用实践 Lei Xia
2 .HPC在各个行业无处不在 Astrophysics Life Sciences Climate Manufacturing Energy Financial Weather Security HPC 带来科技进步 它具有最佳的投资 ROI 之一 22
3 .人工智能 (AI) 是增长最快的新计算技术 -3- 3
4 .HPC+ AI: 认识我们的宇宙 传统宇宙学 用深度学习确定宇宙的物理模型 4
5 .5 计算工具进化的新前沿 HPC AI Model Machine Discovery Intelligence Synthesis Models & Simulations Spreadsheet Simple Arithmetic 5
6 .HPC 和 AI 的计算需求 Compute AI Memory HPC Interconnect 两者都需要高性能计算、良好的 两者都是现代应用程序的关键构建块 内存子系统和快速互连 6
7 .HPC 工作负载的特征 Graph High Dense Linear Algebra Arithmetic Sparse Linear Algebra Intensity FFT Low N-body (short range) Sparse Dense N-body (long range) – PIC or PM Memory Access Dense Stencil Regularity Sparse Stencil 通用 CPU 似乎非常适合各种工作负载 7
8 . AI 工作负载的特征 Graph High Decision Tree Linear Regression Arithmetic Reinforcement Learning Intensity Neural Network (CNN) Low Neural Network (RNN / LSTM) Sparse Dense Memory Access 高算术强度和密集的常规访问有利于脉动阵列处理器。 Regularity 其他 AI 算法更通用。 因此,通用CPU更适合。 8
9 . HPC + AI 在英特尔® 架构上开发应用 HPC AI Applications Productivity Framework Performance Intel® Math Kernel Library (MKL) Intel® Performance Primitives (IPP) Intel Python Distribution Intel® Data Analytics Acceleration Library Intel® nGraph library (DAAL) Intel® Math Kernel Library (MKL, MKL-DNN) hardware + Compute *Future FPGA Movidius Intel® GNA* Autonomous VPU Driving Memory & Storage Networking 9
10 .应用案例: 地震后地球重力场累积变化的推导 • HPC+AI 运行于英特尔® 至强® 可扩展处理器系统 的 250 个节点上(2 个插槽) • 训练 DL 模型作为 HPC 算法的预处理 • 采用英特尔优化的 TensorFlow 以使用 AVX512 指令集加速训练 10
11 .应用案例: 地震后地球重力场累积变化的推导(续) 100GB 内存上的巨大训练性能改进 Customer’s original code Optimized code to leverage large memory on Xeon import tensorflow as tf import tensorflow as tf import numpy as np import numpy as np from sklearn.model_selection.train_test_split import train_test_split … def generate_arrays_from_file(feature_path, label_path, batchsize): … features = [] labels = [] X = np.loadtxt(open(“features.csv", "rb"), delimiter=",", skiprows=1) batchcount = 0 while True: y = np.loadtxt(open(“label.csv", "rb"), delimiter=",", skiprows=1) with open(feature_path) as f1: with open(label_path) as f2: for feature, label in zip(f1, f2): trainset_x, trainset_y, testset_x, testset_y = train_test_split(X, y, test_size=0.2, random_state=1) fs = feature.split(',') features.append(fs) … labels.append(label) batchcount += 1 train_dataset = tf.data.Dataset.from_tensor_slices((trainset_x, trainset_y)) if batchcount > batchsize: x = np.array(features, dtype='float32’) y = np.array(labels, dtype='float32’) train_dataset = train_dataset.shuffle(SHUFFLE_BUFFER_SIZE) yield (x,y) .cache() .batch(BATCH_SIZE) features = [] .prefetch(BATCH_SIZE) labels = [] batchcount = 0 … … model.fit(train_dataset, epochs=…) … my_generator = generate_arrays_from_file(“features_train.csv”, “label_train.csv”, BATCHSIZE): model.fit(my_generator, epochs=…) … 11
12 .12 总结 ▪ HPC 和 AI 是计算演进过程中的互补工具 ▪ CPU作为通用处理器最适合HPC和AI计算 ▪ 英特尔架构通过硬件 + 软件加速实现 HPC+AI 实践 12