域名預(yù)訂/競(jìng)價(jià),好“米”不錯(cuò)過
【導(dǎo)讀】
「是什么黑科技,成全了AI又快又準(zhǔn)又省的心愿?」
有什么比禿頭更心酸的嗎?
有,比如智能機(jī)器人將禿了的后腦勺識(shí)別成未戴口罩的臉,跟隨一路提醒佩戴口罩。
如今AI應(yīng)用已非常普遍,這過程中也收獲了不少“人工智障”的笑話,上述只是其中一個(gè),除了離譜的圖像自動(dòng)識(shí)別,還有答非所問的智能對(duì)話。
自迎來以深度學(xué)習(xí)為代表的第三次發(fā)展浪潮,人工智能技術(shù)已被廣泛應(yīng)用在目標(biāo)檢測(cè)、圖像識(shí)別、自然語(yǔ)言處理(NLP)等場(chǎng)景,從語(yǔ)音識(shí)別、自動(dòng)送餐機(jī)器人到生產(chǎn)線影像監(jiān)控,AI的身影無處不在。
客戶的業(yè)務(wù)需求與創(chuàng)新應(yīng)用對(duì)AI推理和訓(xùn)練的效率和質(zhì)量都提出了更為嚴(yán)格的要求,推動(dòng)人工智能發(fā)展從三個(gè)方面——數(shù)據(jù)、算力、算法都需要進(jìn)一步調(diào)優(yōu)和高效。
兩全其美之事已是世間難得,倘若想要在一件事上達(dá)到“三全”,著實(shí)有些困難且“貪心”。
但踏平“人工智障”,真的需要“貪心”一些。
數(shù)據(jù)精度、存儲(chǔ)空間、處理速度,發(fā)展AI必須三者共同進(jìn)步
數(shù)據(jù)、算力和算法之間存在一些原生矛盾。
通常來說,數(shù)據(jù)類型的寬度越大,能表達(dá)的動(dòng)態(tài)范圍和精度也就越高。
更大的動(dòng)態(tài)范圍和更高的精度意味著更多的存儲(chǔ)空間 ,譬如FP32就需要FP16兩倍的內(nèi)存占用,并給內(nèi)存帶寬帶來成倍的壓力,對(duì)算力帶來挑戰(zhàn)。
同時(shí)算法層面,盡管深度學(xué)習(xí)是人工智能(AI)近幾年重新走紅的功臣,也是吞噬算力的巨大 “黑洞”。
這三者平衡起來依然也會(huì)存在困難,從數(shù)據(jù)類型的層面,要節(jié)省存儲(chǔ)空間就需要做出一定的讓步或犧牲,例如,Google為加速AI深度學(xué)習(xí)而引入的BFloat16(BF16)數(shù)據(jù)類型,用FP16的數(shù)據(jù)寬度實(shí)現(xiàn)了與FP32相當(dāng)?shù)膭?dòng)態(tài)范圍,其代價(jià)是精度有所降低。
這只是解決了一方面,但如果實(shí)現(xiàn)“既準(zhǔn),又省,還快”三重快樂AI,三大要素必須共同發(fā)力:簡(jiǎn)化數(shù)據(jù),強(qiáng)化算力,優(yōu)化算法。
英特爾深度學(xué)習(xí)加速技術(shù):準(zhǔn)、省、快,低精度成就高效率!
算法上的革新是重中之重。
如同上述所說,大多數(shù)深度學(xué)習(xí)應(yīng)用在其訓(xùn)練和推理工作負(fù)載中多采用 32 位浮點(diǎn)精度(FP32),盡管精度高但占用更大內(nèi)存,進(jìn)而影響計(jì)算效率。
當(dāng)數(shù)據(jù)格式由 FP32 轉(zhuǎn)為 8 位整數(shù)(INT8)或 16 位浮點(diǎn)數(shù)(BF16)時(shí),內(nèi)存可以移動(dòng)更多的數(shù)據(jù)量,進(jìn)而更大化地利用計(jì)算資源。
圖說:不同數(shù)據(jù)格式對(duì)內(nèi)存利用率的影響
這種精度的降低會(huì)對(duì)數(shù)據(jù)處理的準(zhǔn)確率造成影響嗎?
答案是:并不會(huì),或者說影響微乎其微。
近年來已有眾多研究和實(shí)踐表明,以較低精度的數(shù)據(jù)格式進(jìn)行深度學(xué)習(xí)訓(xùn)練和推理,并不會(huì)對(duì)結(jié)果的準(zhǔn)確性帶來太多影響, 譬如BF16用于訓(xùn)練,INT8用于推理,能夠?qū)?zhǔn)確率的損失降至最低,甚至完全沒有損失。
而低精度數(shù)據(jù)格式帶來的優(yōu)勢(shì),也不僅在于提升內(nèi)存利用效率,在深度學(xué)習(xí)常見的乘法運(yùn)算上,它也能減少處理器資源消耗并實(shí)現(xiàn)更高的操作速度(OPS)。
算法的升級(jí)助力了“準(zhǔn)”和“省”的達(dá)標(biāo),但“快”的層面還略有些差強(qiáng)人意。
為了保證推理過程中的精度,在CPU的向量處理單元中進(jìn)行矩陣運(yùn)算的時(shí)候,先將8位值相乘再累加到32位,需要3條指令來完成,代價(jià)是3倍的指令數(shù),這也導(dǎo)致峰值運(yùn)算性能只提高了33%。
那么“提速”任務(wù)就交給了算力單元。
英特爾® 深度學(xué)習(xí)加速(英特爾®Deep Learning Boost,簡(jiǎn)稱DL Boost)技術(shù)的精髓,就是把對(duì)低精度數(shù)據(jù)格式的操作指令融入到了 AVX-512 指令集中, 即AVX-512_VNNI (Vector Neural Network Instruction,矢量神經(jīng)網(wǎng)絡(luò)指令) 和 AVX-512_BF16 (bfloat16),分別提供了對(duì) INT8(主打推理)和 BF16(兼顧推理和訓(xùn)練)的支持。
英特爾® 深度學(xué)習(xí)加速技術(shù)帶來訓(xùn)練和推理效率提升
至此,英特爾® DL Boost技術(shù)可以讓人工智能達(dá)到三全,即:
?。?/strong> 簡(jiǎn)化數(shù)據(jù),提高內(nèi)存容量和帶寬的利用率,緩解內(nèi)存壓力;
準(zhǔn): 優(yōu)化算法,模型量化使用較低的數(shù)值精度也能保證結(jié)果的準(zhǔn)確性,特別是推理應(yīng)用;
快: 強(qiáng)化算力,避免增加額外操作,保證性能與內(nèi)存利用率同步提升。
推理與訓(xùn)練,硬件加速雙管齊下
如同一條道路上,通過車輛的體型變小(簡(jiǎn)化后的數(shù)據(jù)),通過的車輛數(shù)量自然就上來了。
兩種新的、針對(duì) AI 應(yīng)用的 AVX-512 指令集使道路(寄存器)上通過了更多的 車輛(數(shù)據(jù)量),新的指令集無疑能使計(jì)算效率獲得大幅提升。
點(diǎn)擊此處回顧英特爾AVX指令集的前世今生《這項(xiàng)15年前的「超前」技術(shù)設(shè)計(jì),讓CPU在AI推理時(shí)代大放光彩》
這兩種不同指令集的優(yōu)勢(shì)也有所不同。
從代號(hào)Cascade Lake的英特爾第二代至強(qiáng)可擴(kuò)展處理器開始,AVX-512指令集就增加了VNNI,用一條FMA指令就可以完成8位乘法再累加到32位的操作。
2020 年問世的第三代英特爾® 至強(qiáng)® 可擴(kuò)展處理器已集成了英特爾® 深度學(xué)習(xí)加速技術(shù)這兩種 AI 加速指令集,并被廣泛運(yùn)用于商業(yè)深度學(xué)習(xí)應(yīng)用的訓(xùn)練和推理過程。
在指令集的支持下,簡(jiǎn)化數(shù)據(jù)的同時(shí)避免了額外的開銷,讓性能可以獲得與內(nèi)存利用率一致的提升。AVX-512_VNNI 使用INT8做推理,對(duì)比使用FP32,理論上可以獲得4倍的性能,而將內(nèi)存要求降至 ¼。
內(nèi)存的減少和頻率的提高加快了低數(shù)值精度運(yùn)算的速度,最終加速 AI 和深度學(xué)習(xí)推理,適合圖像分類、語(yǔ)音識(shí)別、語(yǔ)音翻譯、對(duì)象檢測(cè)等眾多方面。
而AVX-512_BF16 的優(yōu)勢(shì)是既可以用于推理,也可以用于訓(xùn)練,能幫助訓(xùn)練性能提升達(dá) 1.93 倍。代號(hào)Cooper Lake的英特爾第三代至強(qiáng)可擴(kuò)展處理器就集成了bfloat16加速功能,在與FP32相似的精度下,提升性能和內(nèi)存利用率。
軟硬協(xié)同設(shè)立“AI改造車間”,CPU多場(chǎng)景應(yīng)用優(yōu)勢(shì)盡顯
算力、算法、數(shù)據(jù)如今都有各自標(biāo)準(zhǔn)以及解決辦法,當(dāng)三者形成完整閉環(huán)時(shí),如何讓整個(gè)流程的效率更上一層?
依然還有可以繼續(xù)進(jìn)步的地方,那就是:AI 應(yīng)用原生的數(shù)據(jù)格式并不統(tǒng)一的情況下,如何高效的把大量采用傳統(tǒng)FP32數(shù)據(jù)格式的AI模型轉(zhuǎn)換成BF16或INT8格式使用。
由英特爾推出的 OpenVINO™ 工具套件提供了模型量化功能,為上述問題提供了應(yīng)對(duì)良方。
它能讓基于不同 AI 框架,如 TensorFlow、MXNet、PyTorch 等構(gòu)建的 FP32 數(shù)據(jù)格式 AI 模型,在損失很少精度的情況下轉(zhuǎn)化為 INT8 和 BF16 數(shù)據(jù)格式。
除模型量化功能外,針對(duì)一系列 AI 應(yīng)用場(chǎng)景,如視覺模擬、自動(dòng)語(yǔ)音識(shí)別、自然語(yǔ)言處理及推薦系統(tǒng)等,OpenVINO™ 工具套件還提供了能提升它們開發(fā)和部署效率的組件,例如 OpenVINO™ Model Server 和 OpenVINO™ Model Zoo 等組件可對(duì)基于 TensorFlow、PyTorch、MxNet、Keras 等不同框架構(gòu)建的訓(xùn)練模型實(shí)施更為高效的優(yōu)化,并簡(jiǎn)化這些模型部署的流程及耗時(shí)。
AI應(yīng)用場(chǎng)景頗多,那何種場(chǎng)景更能突顯AVX-512_BF16等深度學(xué)習(xí)加速技術(shù)的優(yōu)勢(shì)?
例如在醫(yī)療影像此類重視準(zhǔn)確性多過于實(shí)時(shí)性 的場(chǎng)景中,匯醫(yī)慧影在乳腺癌影像分析場(chǎng)景中引入了集成有英特爾® 深度學(xué)習(xí)加速技術(shù)的第二代英特爾® 至強(qiáng)® 可擴(kuò)展處理器,配合 OpenVINO™ 工具套件,在對(duì)檢測(cè)模型進(jìn)行了 INT8 轉(zhuǎn)換和優(yōu)化后,推理速度較原始方案提升高達(dá) 8.24 倍,且精確度損失不到 0.17%。
企業(yè)啟動(dòng)構(gòu)建AI應(yīng)用,改弦更張并非性價(jià)比之選,可以充分評(píng)估既有的數(shù)據(jù)存儲(chǔ)、處理和分析平臺(tái),如此一來,基于又準(zhǔn)又快又省的CPU,或借助它構(gòu)建和部署符合自身需求的AI應(yīng)用。
更何況,CPU自身的AI能力也在不斷進(jìn)化中,即將發(fā)布的代號(hào)為Sapphire Rapids的英特爾第四代至強(qiáng)可擴(kuò)展處理器,就加入了簡(jiǎn)稱AMX的高級(jí)矩陣擴(kuò)展(Advanced Matrix Extensions)技術(shù)。
AMX是新的x86擴(kuò)展,具有自己的存儲(chǔ)和操作,主要針對(duì)AI領(lǐng)域非常重要的平鋪矩陣乘法,比前兩種DL Boost的實(shí)現(xiàn)更為復(fù)雜,那效果呢?我們(帶上顯微鏡)拭目以待吧~
點(diǎn)擊鏈接:https://www.intel.cn/content/www/cn/zh/artificial-intelligence/deep-learning-boost.html, 了解更多深度學(xué)習(xí)加速技術(shù)。
申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!