当前位置:首页 > 报告详情

利用现代架构最大化CPU上的深度学习性能.pdf

上传人: 竿*** 编号:981535 2025-11-29 29页 1.56MB

1、Accelerating Deep Learning Workloads on Modern CPUsBibek BhattaraiIntelAdvanced matrix Extensions(AMX)q Why should I care?q What does it solve?q How does it work?q How do I leverage it?What DL workloads usually run in CPUs?q Smaller Transformer models:BERT,RoBERTa,DistilBERT,MobileBERT,TinyBERT,etc.

2、q Lightweight CNNs:Lightweight CNN architectures such as MobileNet and SqueezeNet,EfficientNet q Recurrent Neural Networks(RNNs):RNN-based models like LSTM or GRU q Recommendation modelsq Tree based models:XGBoost,Random Forest,etc.Mostly Inference!LLMs/SLMs on CPUUses Intel Advanced Matrix Extensio

3、ns(AMX)!GEMMs dominate the Runtimeq Transformers(e.g.BERT,GPT models):70%of runtime 1q Convolutional Neural Network(CNNs):50-60%of total runtime 2q Recurrent Neural Networks(RNNs):40-60%of runtime 11 https:/bpb-us- Why GEMM is at the heart of deep learning Pete Wardens blogNave MatMulM=N=K=1024Runti

4、me=730msrowsxcolsA is MxKB is KxNC is M x Nfor(int m=0;m M;m+)for(int n=0;n N;n+)float sum=0.0f;for(int k=0;k K;k+)sum+=Am*M+k*Bk*K+n;Cm*M+n=sum;Data are stored in row-major format!Reorder LoopsrowsxcolsA is MxKB is KxNC is M x NM=N=K=1024Runtime=130msfor(int m=0;m M;m+)for(int k=0;k K;k+)for(int n=

5、0;n N;n+)Cm*M+n+=Am*M+k*Bk*K+n;Tiled MatmulA *B =CrowsxcolsA is MxKB is KxNC is M x NSize tiles to fit on local CacheM=N=K=1024T=128Runtime=89msfor(int m=0;m M;m+=T)for(int n=0;n N;n+=T)for(int k=0;k K;k+=T)const int minMt=std:min(m+T,M);const int minNt=std:min(n+T,N);const int minKt=std:min(k+T,K);

6、for(int mt=m;mt minMt;+mt)for(int kt=k;kt minKt;+kt)for(int nt=n;nt minNt;+nt)Cmt*M+nt+=Amt*M+kt*Bkt*K+nt;Data locality is very Important!q Implementing efficient matmul is much more complicatedq Tiling is not cache size-agnostic q Multi-tiered caches complicates things q Vector processing units add

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
根据报告的内容,以下是对全文主要内容的简明扼要概括: - **AMX(Advanced Matrix Extensions)的重要性**: - AMX是Intel CPU的扩展,旨在加速深度学习工作负载。 - GEMM(General Matrix Multiplication)操作在深度学习中占主导地位,AMX通过优化这些操作来提升性能。 - **AMX解决的问题**: - 提高深度学习模型在CPU上的推理速度。 - 支持多种数据类型,包括INT8、FP16和BFLOAT16,以实现低精度计算。 - **AMX的工作原理**: - 通过使用 tiled matrix multiplication(分块矩阵乘法)和低精度计算来加速GEMM操作。 - 利用寄存器和缓存来提高数据局部性,从而减少内存访问延迟。 - **如何利用AMX**: - 开发者需要支持AMX的编译器和框架。 - 数据科学家和机器学习工程师应使用支持AMX的框架和工具。 - 优化和部署团队可以使用Intel AI工具来压缩模型并针对AMX硬件进行部署。 - **性能提升示例**: - 使用AMX,BERT模型的吞吐量可以提升至AVX-512的1.27倍。 - AMX在单周期内可以执行高达1024个bf16操作或2048个int8操作,而AVX-512只能执行64个fp32操作。
"AMX加速深度学习,你准备好了吗?" "深度学习CPU加速,AMX如何做到?" 深度学习性能的飞跃,你了解多少?"
客服
商务合作
小程序
服务号
折叠