版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
智能计算系统
期末复习中国科学院计算所李威副研究员liwei2017@什么是智能计算系统?智能计算系统是智能的物质载体现阶段的智能计算系统通常是集成CPU和智能芯片的异构系统,软件上通常包括一套面向开发者的智能计算编程环境(包括编程框架和编程语言)2智能计算系统的形态数据中心智能手机嵌入式设备超级计算机语音识别自动翻译药物研制图像分析商业分析广告推荐3机器人自动驾驶处理过程输入输出建模实现运行4二三章章节定位5输入输出建模实现运行神经网络基础深度学习学习了神经网络的基本知识,多层感知机的正反向计算过程,以及基础优化方法。本章通过分析经典深度学习算法,学习将基础神经网络应用到实际场景,并逐步优化实现工业级应用的过程。包含关系人工智能机器学习神经网络深度学习1深度学习神经网络机器学习人工智能6如何学习?如何理解?如何学会?从最简单的线性回归模型开始,直至搭建出一个完整的神经网络架构7线性回归什么是回归(regression)和线性回归?
一种用统计方法来分析一个因变量和一组自变量关系的一个方法线性回归:自变量跟因变量之间的关系是线性的8单变量线性回归模型(一元回归模型)线性回归可以找到一些点的集合背后的规律:一个点集可以用一条直线来拟合,这条拟合出来的直线的参数特征,就是线性回归找到的点集背后的规律。
单变量线性模型
9多变量线性回归模型单变量线性模型多变量线性模型2个特征
10线性函数拟合得好不好?
损失函数
11
12多层感知机将大量的神经元模型进行组合,用不同的方法进行连接并作用在不同的激活函数上,就构成了人工神经网络模型。多层感知机一般指全连接的两层神经网络模型输入
隐层
输出层
13多层感知机输入
隐层
输出层
14+1+1神经网络训练正向传播(推断)是根据输入,经过权重、激活函数计算出隐层,将输入的特征向量从低级特征逐步提取为抽象特征,直到得到最终输出结果的过程。反向传播(训练)是根据正向传播的输出结果和期望值计算出损失函数,再通过链式求导,最终从网络后端逐步修改权重使输出和期望值的差距变到最小的过程。
反向更新权值
15反向传播的作用是将神经网络的输出误差反向传播到神经网络的输入端,并以此来更新神经网络中各个连接的权重当第一次反向传播法完成后,网络的模型参数得到更新,网络进行下一轮的正向传播过程,如此反复的迭代进行训练,从而不断缩小计算值与真实值之间的误差。16训练完了结果就是不准,怎么办?神经网络的模型训练调整网络拓扑结构选择合适的激活函数选择合适的损失函数17神经网络的拓扑调节输入:神经元个数=特征维度输出层:神经元个数=分类类别数隐层:
隐层的数量?隐层神经元的个数?神经网络的结构一般为:输入×隐层×输出层给定训练样本后,输入和输出层节点数便已确定18选择合适的激活函数
可微性:当优化方法是基于梯度的时候,这个性质是必须的。
输出值的范围:当激活函数输出值是有限的时候,基于梯度的优化方法会更加稳定,因为特征的表示受有限权值的影响更显著;当激活函数的输出是无限的时候,模型的训练会更加高效,不过在这种情况下,一般需要更小的学习率。激活函数需具备的性质激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,因此神经网络可以应用到众多的非线性模型中
19神经网络中损失函数的特性同一个算法的损失函数不是唯一的损失函数是参数(w,b)的函数损失函数可以评价网络模型的好坏,损失函数越小说明模型和参数越符合训练样本(x,y)损失函数是一个标量选择损失函数时,挑选对参数(w,b)可微的函数(全微分存在,偏导数一定存在)损失函数又称为代价函数、目标函数20欠拟合和过拟合x1yx1yx1y欠拟合合适拟合过拟合欠拟合:训练考虑的维度太少,拟合函数无法满足训练集,误差较大过拟合:训练考虑的维度太多,使得拟合的函数很完美的接近训练数据集,但泛化能力差,对新数据预测能力不足21神经网络存在的问题及解决办法神经网络规模不断加大,可能会导致一个致命问题:过拟合,泛化能力差正则化22定义机器学习不仅要求模型在训练集上求得一个较小的误差,在测试集上也要表现好。因为模型最终是要部署到没有见过训练数据的真实场景。提升模型在测试集上的预测效果叫做泛化。神经网络的层数增加,参数也跟着增加,表示能力大幅度增强,极容易出现过拟合现象参数范数惩罚、稀疏化、Bagging集成、Dropout、提前终止、数据集扩增等正则化方法可以有效抑制过拟合过拟合(overfitting)指模型过度接近训练的数据,模型的泛化能力不足。具体表现为在训练数据集上的误差很低,但在测试数据集上的误差很大。23适合图像处理的卷积神经网络计算机视觉24输入图像输入图像大小为32x32,输入数据量为32x32x3=3072隐层神经元个数为100,第一层权值数量为3072x100=307200卷积神经网络(CNN)25全连接卷积局部连接权重共享所有神经元之间的连接都使用不同权重。输出层神经元共用同一组权重,进一步减少权重数量。权重数量CNN组成VGG16卷积层(conv)池化层(max
pool)全连接层(FC)Softmax26卷积层27多输入特征图单输出特征图卷积运算*inputfilter=output6x6x33x3x34x4x1卷积层28*=6x6x33x3x34x4x10000110020000020120000220121-1-1-1-10-1111-1-1-10-1-101-111-11-11-11C=0C=1C=2*=2-2-1+2+0-2+0+2+(-1)+0+0+2=2卷积层29卷积层30多输入特征图多输出特征图卷积运算*inputfilter1=output6x6x32x3x3x34x4x2不同的权重可检测不同特征。filter2output卷积层31边界扩充(padding)扩大输入图像/特征图的尺寸并填充像素防止深度网络中图像被动持续减小强化图像边缘信息卷积步长(stride)滑动滤波器时每次移动的像素点个数与pad共同确定输出图像尺寸
池化层32PoolingMaxPooling/AvgPooling/L2Pooling主动减小图片尺寸,从而减少参数的数量和计算量,控制过拟合;不引入额外参数;231523745231396042064712410806702163753964786Maxpooling
Maxpooling可保留特征最大值,提高提取特征的鲁棒性。全连接层33FullyConnect卷积层和池化层构成特征提取器,全连接层则为分类器;将特征提取得到的高维特征图映射成一维特征向量,该特征向量包含
所有特征信息,可转化为各个类别的概率。Softmax
卷积神经网络结构34层排列规律Conv+relupoolFC+reluFC/softmaxNMK…dog常见卷积神经网络由卷积层(激活)、池化层和全连接层构成;各层的常见排列方式如图所示,其中N、M、K为重复次数;例如:N=3,M=1,K=2情况下的网络结构为:
浅层学习局部特征,深层学习整体特征35神经网络可视化:conv6conv9Springenberg,J.T.;Dosovitskiy,A.;Brox,T.&Riedmiller,M.Strivingforsimplicity:theallconvolutinalnetICML,2015,1-12基于CNN的图像分类算法36AlexNetVGGInception系列ResNetVGG37Paper:VeryDeepConvolutionalNetworksforLarge-ScaleImageRecognition(2014)Author:K.Simonyan,
A.ZissermanTest:errorrateonImageNet,top1:24.7%,top5:7.5%VGG16ResNet38Paper:DeepResidualLearningforImageRecognition(2015)Author:KaimingHe,XiangyuZhang,ShaoqingRen,JianSunTest:errorrateonImageNet,top5:3.57%(resnet152)ResNet39问题:卷积层堆积就能提升图像分类准确率吗?实验:分别用20层和56层卷积神经网络在cifar10数据集上进行训练和测试,发现更深的网络错误率更高,在ImageNet数据集上也同样如此。原因:梯度消失?No,使用BatchNorm可有效缓解梯度消失;
过拟合?No,更深的网络在训练集上的误差同样更高;神经网络退化:收敛到极值点而非最值,误差大。ResNet40Plainnetwork(普通网络):直接用多项式拟合输出;Residualnetwork(残差网络):建立在BN之上,用多项式拟合差值;优点:在解附近时权重的反应更灵敏,更容易学习获得最优解。什么是“残差”inputCNNoutputplainnetworkinputCNNoutputresidualnetwork+(output–input)图像分类算法41图像分类CNNAlexNetZF-NetVGG网络中的网络GoogLeNetInception-v2Inception-v3Inception-v4层与层的连接ResNetResNextDenseNet通道注意力SENet轻量化可分离卷积MobileNetEfficientNetTransformer注意力机制ViTSwinTransformerDeiT多模态对齐CLIPCoOpMLPMLP-Mixer分类定位+分类物体检测图示输入singleandbigobjectsingleandbigobjectmultiandsmallobject输出labellabel&boundingboxmultilabel&boundingbox评价precision(top1/top5)IoU(交并比)mAP(MeanAveragePrecision)图像检测算法42基于CNN的图像检测算法43R-CNN系列YOLOSSD目前,基于深度学习的目标检测算法大致分为两类:
1.两阶段(two-stage)算法:基于候选区域方法,先产生边界框,再做CNN分类(R-CNN系列)
2.一阶段(one-stage)算法:对输入图像直接处理,同时输出定位及其类别(YOLO系列)
Two-stageOne-stage目标检测算法44/p/33277354目标检测TwostageR-CNNSPP-NetFastR-CNNFasterR-CNN更好的特征网络HyperNetMS-CNNPVANetLight-HeadR-CNN更精确的RPNMR-CNNFPNCRAFT更完善的ROI分类R-FCNCoupleNetMask
R-CNNCascadeR-CNN目标后处理OHEMSoft-NMSA-Fast-RCNNOnestageOverFeatYOLOYOLOv2YOLOv3YOLOv4YOLOv7YOLOv5YOLOv8YOLOv6YOLOXYOLORSSDR-SSDDSSDDSODFSSDRetinaNetEfficientDet生成对抗网络GAN2014年IanGoodfellow提出生成式对抗网络GANGoodfellowIJ,Pouget-AbadieJ,MirzaM,etal.Generativeadversarialnets[C]//InternationalConferenceonNeuralInformationProcessingSystems.2014.20年来机器学习领域最酷的想法——YannLeCun解决的问题:从训练样本中学习出新样本。为无监督、预测学习提供算法框架。和苏格拉底的辩证法有相似之处45GAN学习到了真实样本集的数据分布/generative-models/生成对抗网络GAN模型由两部分组成生成器(伪装者):找出观测数据内部的统计规律,尽可能生成能够以假乱真的样本,使判别网络输出接近0.5,难以区分真假。判别器(警察):判断输入数据是来自真实样本集还是生成样本集。如果输入是真样本,输出接近1;如果输入是生成样本,输出接近0。46生成模型G真实样本x生成样本G(z)判别模型D随机噪声z或真?假?卷积GANDCGAN:将GAN中全连接神经网络扩展到卷积神经网络ResGAN:图像恢复,ResNetSRGAN:超分辨率,ResNetCycleGAN:图像转换条件GANCGANInfoGAN集成推断模型的GANBiGAN对抗自编码器VAE-GAN47GAN结构生成对抗网络vs扩散模型48生成对抗网络存在的问题生成图像缺乏多样性模式崩溃由对抗性带来的难以训练扩散模型的优势扩散模型训练过程中没有对抗,训练更容易不会受到模式崩溃的影响能够产生多样化图像扩散模型49J.Ho,A.Jain,andP.Abbeel.Denoisingdiffusionprobabilisticmodels[C].NeurIPS,2020.DDPM(去噪扩散概率模型)在图像合成方面击败了GAN扩散模型50基本原理正向过程和反向过程51人获得的输入是什么?图像信息序列信息任务:理解图像内容方法:卷积神经网络任务:理解语音/文字/视频方法:循环神经网络任务特点:按时序输入的数据之间不是相互独立的,前后数据之间有相关性,所以网络要有“存储”信息的能力。序列模型:循环神经网络循环神经网络结构
52=unfold输入输出层隐层(记忆单元)
循环神经网络结构53=unfold输入输出层隐层(记忆单元)
循环神经网络结构正向计算过程54
一般时刻:
X+XfXsoftmaxRNNcell
循环神经网络结构反向传播BPTT(back-propagationthroughtime)某个时刻的损失函数为:整个序列的损失函数为:
损失函数对W的偏导为:
RNN的梯度消失与梯度爆炸梯度爆炸/梯度消失56根据推导可知序列损失函数对U和W的梯度为:
由于梯度爆炸或消失的存在,循环神经网络实际上只能学习到短期的依赖关系。RNN的梯度消失与梯度爆炸57循环神经网络的递归结构导致梯度消失/梯度爆炸现象更明显如何改进梯度爆炸问题梯度截断梯度消失问题模型上的改进,例如LSTM、GRU算法Pascanu,R.;Mikolov,T.&Bengio,Y.Dasgupta,S.&McAllester,D.(Eds.)Onthedifficultyoftrainingrecurrentneuralnetworks,ICML2013由编码器(encoder)和解码器(decoder)两部分组成编码器根据输入数据生成语义编码解码器根据该语义编码输出处理结果Seq2Seq模型适用于输入序列和输出序列不等长的情况58Seq2SeqTransformerTransformer结构图Transformer网络是目前NLP常用的模型之一与Seq2Seq模型结构类似,Transformer也包括编码器和解码器两个部分59AshishVaswani,NoamShazeer,NikiParmar,JakobUszkoreit,LlionJones,AidanN.Gomez,ŁukaszKaiser,andIlliaPolosukhin.Attentionisallyouneed.NeurIPS’2017.60从Transformer到GPT4——GPT系列工作发展历程GPT(2018.6)GPT-2(2019.2)GPT-3(2020.5)CodeX(2021.8)InstructGPT(2022.3)ChatGPT(2022.11)GPT-4(2023.3)GPT1-3对比模型GPT-1GPT-2GPT-3主要贡献提出预训练和微调的统一框架用无监督预训练模型做各种不同NLP任务无需微调,利用少量演示指定任务发布时间2018年6月2019年2月2020年5月参数量1.17亿15亿1750亿数据量5GB40GB45TB61从Transformer到GPT4——GPT系列工作发展历程GPT(2018.6)GPT-2(2019.2)GPT-3(2020.5)CodeX(2021.8)InstructGPT(2022.3)ChatGPT(2022.11)GPT-4(2023.3)ChatGPT的训练语料里包含了多种主题的数据,能够处理不同任务:回答各种问题,撰写文章,多语种翻译,生成代码等ChatGPT可以主动记忆之前的对话内容,实现连续对话ChatGPT可以识别敏感话题(如种族、政治、人身攻击等),产生符合安全性、伦理性的回答ChatGPT使用来自人类反馈的强化学习对预训练大模型进行微调,提升了理解人类思维的准确性,实现优于GPT-3的功能(同InstructGPT)62从Transformer到GPT4——GPT系列工作发展历程GPT(2018.6)GPT-2(2019.2)GPT-3(2020.5)CodeX(2021.8)InstructGPT(2022.3)ChatGPT(2022.11)GPT-4(2023.3)63神经网络量化方法分类神经网络量化数据量化方法量化对称性对称量化非对称量化量化均匀性均匀量化非均匀量化量化粒度分层量化分通道量化优化目标推理加速训练后量化量化感知训练训练加速64大模型量化混合精度训练预训练和微调时,用FP16或BF16替代部分FP32进行数据存储和计算混合精度推理SmoothQuant,ICML2023Imagestyletransfer给定一张风格图像a和一张内容图像p;风格图像经过CNN生成的featuremaps组成风格特征集A;内容图像p通过CNN生成的featuremaps组成内容特征集P;输入一张随机噪声图像x,随机噪声图像x通过CNN生成的featuremaps构成内容特征和风格特征集合F和G,目标损失函数由A,P,F,G计算得到;优化函数是希望调整图像x,使其最后看起来既保持内容图像p的内容,又有风格图像a的风格。65
卷积神经网络卷积神经网络卷积神经网络
损失函数
Real-TimeImagestyletransfer66内容图像风格图像输入图像特征提取网络(预训练)内容特征表示风格特征表示损失函数图像转换网络(待训练)风格特征表示内容特征表示训练过程实时转换过程输入图像图像转换网络(训练完成)四五章章节定位67编程框架Bang输入输出建模实现运行第四章将学习到实现深度学习算法所使用的编程框架的简单用法第五章将学习到实现深度学习算法所使用的编程框架的工作机理定义68随着深度学习研究的深入,深度学习算法变得愈加复杂,研究人员需要花更多的时间和精力在算法的实现上深度学习编程框架:将深度学习算法中的基本操作封装成一系列组件,这一系列深度学习组件,即构成一套深度学习框架编程框架能够帮助算法开发人员更简单的实现已有算法,或设计新的算法。也有助于硬件程序员更有针对性的对关键操作进行优化,使其能充分发挥硬件效率PyTorch简介PyTorch=Py+Torch2017年FacebookAIResearch开源PyTorch是一个基于Torch的Python开源机器学习库,用于自然语言处理等应用程序,具有强大的GPU加速的张量计算(如Numpy)能力产生背景:编程语言提供了面向深度学习的高效编程库(NumPy、Eigen、Torch等)Python开源生态蓬勃发展691、NumPy基础Python语言提供的高性能编程库,提供大量库函数和操作,提供针对高维数组的批量化处理,能够高效处理机器学习、计算机视觉、基于数组的数学任务NumPy中最重要的数组类为ndarray,也叫array优点易用:直接对数组进行操作,并提供多种常用内嵌API供用户直接调用高性能:大部分NumPy代码是基于C语言实现的,相比Python代码有更高的实现性能局限性原生的NumPy只能在CPU上实现为了在GPU上高效运行Python计算库,出现了CuPy、Numba、PyCUDA、PyTorch等70712、张量(tensor)张量是计算图上的数据载体,用张量统一表示所有的数据,张量在计算图的节点之间传递张量对应了神经网络中在各个节点之间传递、流动的数据张量可以看做是n维的数组,数组的维数即为张量的阶数与NumPy中的ndarray不同,PyTorch中的张量可以运行在GPU或深度学习处理器上,因此具有较高的性能阶数对应数据形式0标量1向量2矩阵nn维数组723、操作(operation)PyTorch基于张量开展各种类型的计算操作。每个操作接收若干个张量作为输入,操作完成后更新原张量或生成新张量作为输出计算操作是使用PyTorch实现模型训练和推理的基础常用计算操作(torch./tensor.)函数名称功能new_tensornew_zeros/new_ones返回一个新张量返回尺寸与原张量相同,元素值全为0/1的新张量grad训练时得到的张量梯度add/subtract/multiply/divide加/减/乘/除计算bitwise_and/bitwise_or/bitwise_not按位与/或/非操作sin/cos/tanh正弦/余弦/正切计算where(condition,x,y)按条件输出不同张量to张量数据类型、设备类型转换sort按指定维度将张量元素升序/降序排列round/ceil/floor四舍五入/向上取整/向下取整操作transpose转置计算734、计算图编程框架中使用有向图来描述计算过程。有向图中包含一组节点和边支持通过多种高级语言来构建计算图(C++/Python)计算图对应了神经网络的结构示例:y=w*x静态图vs.动态图matmulwxy静态图动态图先定义整张图,再运行即时运行,网络模型可在运行时修改可以对图进行全局优化,获得更快的运算速度代码编写灵活,可立即获得执行结果,调试方便调试不方便优化不方便74训练预测新数据模型参数预测值训练数据深度学习方法加载训练数据集构建模型定义损失函数梯度计算与优化保存模型训练模型构建神经网络实例化神经网络调试读取输入图像神经网络模型优化Pytorch整体架构75四大模块计算图构建模块:完成从输入的用户程序到编程框架内部原始计算图的转换过程,编程框架的入口模块分布式训练模块:应对更大规模的神经网络,将训练、推理任务从一台设备扩展到多台设备深度学习编译模块:对计算图分别进行图层级和算子层级的编译优化,从而提升单设备上的执行效率计算图执行模块:将优化后的计算图中的张量和操作映射到指定设备上进行具体执行,并给出编程框架的输出结果计算图构建计算图执行分布式训练深度学习编译dataMatmulweightoutput原始计算图优化后的计算图data_0OptMatmul_0weight_0output_0设备0data=torch.tensor(…)weight=torch.tensor(…)output=torch.matmul(data,weight)用户程序编程框架输出
output…拆分后的计算图Matmul_0weight_0output_0设备0data_0Matmul_1weight_1output_1设备1data_1通信Pytorch整体架构图计算图构建77计算图由两个基本元素构成:张量(Tensor)和张量操作(Operation)。计算图是有向图,有向边指明了张量的流动方向计算图执行将计算图中的张量和操作(本节又称算子)映射到给定设备上具体执行设备管理张量实现算子执行获取算子执行序列实现算子:前端定义、后端实现、前后端绑定查找并调用算子78深度学习编译79接收以计算图形式表示的深度学习任务,并在指定硬件平台上生成高性能代码多个层级中间表示&多个层级优化图层级优化:子图替换、常量折叠、公共子表达式删除、布局优化以及算子融合等算子层级优化:自动调优,基于搜索的方法和基于多面体模型的方法常见深度学习框架中所采用的编译技术和深度学习编译器TVM、TC(TensorComprehensions)、XLA、MLIR…分布式训练80根据分布式计算中的分区情况,可以划分出不同的分布式计算方法:数据并行:对输入数据进行分区,用于解决单节点算力不足的问题。模型并行:对模型参数进行分区,用于解决单节点内存不足的问题。混合并行:同时对输入数据和模型参数进行分区,将数据并行和模型并行在训练过程中同时使用。六七章章节定位输入输出建模实现运行81用来处理智能任务的处理器可以是CPU、GPU、FPGA等也可以是专用的深度学习处理器(DLP)82智能计算系统中的处理器832019201320082014201520162017国际首个深度学习处理器架构DianNao国际首个多核深度学习处理器架构DaDianNao国际首个深度学习处理器芯片国际首个深度学习指令集奠定寒武纪生态基础近亿台手机和服务器开始集成寒武纪处理器国际上同期峰值速度最高的智能芯片MLU100AlphaGo用1202个CPU+176个GPU战胜李世石Google公布其第一代深度学习处理器TPUNvidia在其V100GPU产品中加入深度学习加速器深度学习处理器发展第三次热潮(2006-至今)可用于人工智能的GPUGoogleBrain猫脸识别1.6万个CPU核训练数天20122018MLU270性能提升4倍首个面向深度学习的GPU架构Pascal以精简的通用处理器结构为基础省去了分支预测器数据缓存被便笺存储器取代添加直接访存模块(DMA)负责便笺存储器与主存储器间的数据搬运添加矩阵运算单元添加矩阵指令的控制单元84DLP结构深度学习处理器(DLP)的特点计算:矩阵、卷积运算为主,辅以标量、向量运算控制:计数循环为主,辅以条件分支指令存储:便笺存储器为主,辅以寄存器采用分形方式进行规模扩展85深度学习处理器的特点计算矩阵运算单元可设计为矩阵乘向量单元、矩阵乘法单元、脉动阵列机等矩阵乘向量单元适用于深度学习模型推理场景矩阵乘法单元适用于高性能的深度学习训练场景脉动阵列机在设计规模更大时能够带来多种优势86访存便笺存储器是DLP核心的数据枢纽访问便笺可能成为瓶颈“拓宽道路”:增加端口、设计为分组SRAM代价:硬件开销增加“规划车流”:根据算法特征,采用分离式设计代价:降低通用性通过软件流水线(而不再是硬件)使计算/访存并行起来指令重新排序,不需要乱序执行显式控制同步,不需要依赖检查87通信通信结构的设计原则:逻辑上:环状链路足以高效完成通信物理上:链路设计适当增加冗余,按需配成环路综合考虑性能和成本约束做出选择88优化设计一些常用的/前沿的优化设计:变换对算法进行变换,削减计算强度压缩对算法进行压缩,直接减少算法的参数量和计算量近似对算法进行近似替代,降低计算成本非传统结构和器件探索采用CMOS数字电路以外的技术,改写计算范式89第八章章节定位90编程框架智能编程语言
输入输出建模实现运行本章将学习到智能编程语言的基础知识及相应的应用开发、调试和调优方法等学习了实现深度学习算法所使用的编程框架的基本原理、简单用法等抽象硬件架构层次化的智能计算系统抽象硬件架构91智能计算系统中每一层都包含存储单元、控制单元和若干个计算单元每个计算单元又进一步分解为子控制单元、子计算单元和子存储单元三部分,整个系统以这样的方式递归构成在最底层,每个叶节点都是具体的加速器,用于完成最基本的计算任务。典型智能计算系统多卡的DLP服务器抽象为五个层次,即服务器级(Server)、板卡级(Card)、芯片级(Chip)、处理器簇级(Cluster)和处理器核级(Core)。92可以方便地通过增加各层次的规模来提升整个系统算力异构编程模型异构计算系统组成通用处理器:控制设备(简称主机端),负责控制和调度等工作领域处理器:从设备(简称设备端),负责大规模的并行计算或领域专用计算任务二者协同完成完整计算任务93典型异构计算系统(a)GPU为核心(b)FPGA为核心(c)TPU为核心(d)DLP为核心异构编程模型:流程异构编程模型的编译和链接流程整体采用分离式编程方式:主机端代码和设备端代码94异构编程模型:编译器支持编译器支持是异构并行编程模型的核心95异构并行编程编译器任务划分数据分布数据通信并行同步编程模型需要向程序员提供并行编程接口,方便程序员定义和划分任务。编译器负责底层的任务划分,使得程序可以在并行架构上高效执行。对于编译器和底层运行时系统而言,需要根据算法和硬件架构的特点,通过合适的数据分布指导后续编译和运行时优化。由于设备端通常有多级存储空间、编译器需要支持各种地址空间声明,以方便程序员显式控制存储数据的地址空间。设备端程序一般要求感知多个核的并行处理,因此需要提供对同步机制的支持。异构编程模型:运行时支持完成任务映射及调度,即指定任务具体在哪个设备或计算单元上以何种顺序执行分为主机端和设备端
主机端:控制部分和串行任务在主机端执行
设备端:计算部分和并行任务在设备端执行96通用智能编程模型:编译器支持任务划分并行内建变量硬件:clusterDim(维度),clusterId(序号),coreDim,coreId任务:taskDim[XYZ],taskId[XYZ]表示Kernel启动task的规模,有XYZ三个维度,用户根据需求进行指定任务调度类型表示Kernel运行调度时需要的硬件核BLOCK类型:Kernel为单核任务,按单核进行调度UNIONx类型:Kernel为多核并行任务(其中x可以为1/2/4,UNION1对应1个cluster4个核)97taskDimZtaskDimYtaskDimXtaskID[XYZ]通用智能编程模型:运行时支持任务调度单位(BLOCK/UNIONx)以调度单位将Kernel中的任务在时间或空间维度展开BLOCK:单核调度,当有一个核空闲时,调度一个任务执行UNION1:调度时需要1个cluster,当有1个cluster空闲时,调度任务执行UNION2:调度时需要2个cluster,当有2个cluster空闲时,调度任务执行调度单位需要用户在编程时指定。运行时只有当空闲的硬件资源数大于调度单位时,Kernel才会被调度队列(Queue)管理需要执行的任务,队列既可以单独工作,也可以协同工作运行时(或硬件)不断把任务放到队列中,一旦硬件计算资源有空闲,就从队列中取出一个任务执行981、主机端异步发射3个Kernel到Queue中。用户可以根据同步和通信的需要,在三次发射之间或之后任意位置调用同步接口SyncQueue。假设在三次发射之后调用,则等待Queue中的任务全部完成后再继续执行主机端SyncQueue后面的程序;2、第一个任务Kernel1在Time1被发射后立即进入Queue,设备端发现当前全部核心空闲则立即执行Kernel1。Kernel1的任务类型为UNION2,会从Time1开始占用2个Cluster执行计算;99主机端执行3个Kernel任务设备端有4个Cluster,16个Core1003、因没有调用SyncQueue,所以主机端发射Kernel1后立即发射Kernel2,设备端调度器在调度执行Kernel1后发现队列中有了新的Kernel2,也几乎在Time1时刻开始执行Kernel2。Kernel2的任务类型为UNION1,会从Time1开始占用1个Cluster计算;4、Kernel1和Kernel2几乎同时被调度器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025饭店转包合同范文
- 2025年度养老机构宠物养护服务合同示范文本3篇
- 二零二五年度竞业禁止劳动合同在文化产业的关键作用3篇
- 二零二五年度公租房合同签订及补贴发放协议3篇
- 二零二五年度学校食堂兼职校医食品安全合同2篇
- 二零二五年度素食餐饮技术加盟经营合同2篇
- 二零二五年度土方运输车辆智能化改造与升级合同3篇
- 二零二五年度新能源电动汽车租赁合同2篇
- 2025年度年度租赁车辆保险责任协议3篇
- 2025年度极限运动赛事委托承办授权协议3篇
- 核心素养导向下小学信息科技课程单元设计与实践策略研究
- 员工保密培训
- 2024-2025学年八年级化学沪科版(五四学制)全一册上学期期末复习卷①
- GB/T 42455.2-2024智慧城市建筑及居住区第2部分:智慧社区评价
- 物流仓储设备维护保养手册
- 农商银行小微企业续贷实施方案
- 2024年山西广播电视台招聘20人历年高频500题难、易错点模拟试题附带答案详解
- 2024山西太原文化局直属事业单位招聘30人历年高频500题难、易错点模拟试题附带答案详解
- 2024年北京市第一次普通高中学业水平合格性考试英语仿真模拟卷03(全解全析)
- 2024年江苏省淮安技师学院长期招聘高技能人才3人高频考题难、易错点模拟试题(共500题)附带答案详解
- 应急救援员五级理论考试题库含答案
评论
0/150
提交评论