<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          親手驗證:如何充分激發(fā)CPU的AI加速潛能

          共 3475字,需瀏覽 7分鐘

           ·

          2021-10-02 01:02




          黑格爾曾說:“沒有沖突不成戲劇?!庇^察一下現(xiàn)在的AI行業(yè)實踐,可能有助于你理解這句話內味兒。


          就在大家認為AI還只是個遙不可及的夢想時,深度學習技術的出現(xiàn)讓大家重拾希望;當人們認為AI會在實驗室里停留更長時間時,它已不聲不響地走進了眾多行業(yè)的實踐;當大家還在爭論,跑AI,到底是GPU好,還是應該開發(fā)更多種類、更專用的AI加速芯片時,有人卻說:“為什么不先試試CPU呢?”,真是戲劇性、轉折感爆棚。


          說出最后這句話的,正是IT圈兒的老朋友英特爾。



          從2017年第一代至強可擴展處理器集成AVX-512,開始基于CPU對AI訓練和推理提供加速支持,到2018年第二代至強可擴展處理器在AVX-512技術之上擴展出深度學習加速技術,主打INT8推理加速,再到2020年面向多路服務器的第三代至強可擴展處理器新增BF16加速,開始兼顧推理和訓練的加速,最后再到今年發(fā)布的面向單路和雙路服務器的第三代至強可擴展處理器(Ice Lake)進一步強化INT8推理加速,將推理能力提升到上一代產(chǎn)品的1.74倍,這一套連貫的動作下來,足以證明英特爾“用CPU跑AI”并非口嗨。


          圖注:AVX-512是英特爾推出的向量計算指令集,既兼顧了過去SSE指令集支持的計算類型,也擴展了更多功能,代號為“Skylake”的第一代英特爾至強可擴展處理器產(chǎn)品家族是首個全面支持AVX-512指令集的至強處理器產(chǎn)品線

          圖注:BF16(bfloat16)加速是面向多路服務器的第三代英特爾至強可擴展處理器的新增功能,其相比INT8和FP32,在速度和準確性方面能實現(xiàn)更好的平衡

          不少英特爾的客戶也在說“用CPU跑AI效果不錯”。但作為極具折騰精神的E企研究院,我們更希望為大家親手驗證:


          • 至強可擴展處理器,尤其是它最新一代產(chǎn)品,真地能為AI提供出色的加速效果么?


          • 還有我們需要用什么樣的“姿勢”,才能用好CPU的這項新能力?


          E企研究院這次用長城超云的雙路服務器平臺---Ice Lake架構的第三代英特爾至強可擴展處理器——36核心72線程的至強鉑金8360Y處理器來進行驗證。需要說明的是,這次測試只使用了單顆CPU。


          圖注:用于本次測試的長城超云雙路服務器,配備了36核心72線程的英特爾至強鉑金8360Y處理器,并安裝有8條64GB的DDR4 2933 MHz的DRAM內存,內存總容量為512GB。它還支持PCIe 4.0,可配備最新一代使用PCIe 4.0通道的U.2(NVMe)固態(tài)盤,如英特爾的D7與D5系列產(chǎn)品

          摸出底線


          我們先來測試CPU在無特別優(yōu)化的情況下,跑AI應用時的性能表現(xiàn)。


          我們把自己代入成一家主要用AI做推理的企業(yè),具體場景是基于訓練好的模型,使用來自多個傳感器收集的圖像或語音數(shù)據(jù)做推理的過程,因此出場的模型,我們選中了經(jīng)過預訓練的ResNet50推理模型。


          圖注:用于本次測試的ResNet50(v1.5)模型,是經(jīng)過預訓練的推理模型,可供用戶下載使用

          測試的主要流程是:在測試環(huán)境中安裝TensorFlow 2.5版本,并使用主流的ImageNet 2012數(shù)據(jù)庫,并將CPU設置為性能優(yōu)先模式,然后運行ResNet 50推理模型。


          結果是每秒處理超過72張圖片,平均時延在14ms以內,這個……也太沒吸引力了吧!


          圖注:讓CPU處于性能優(yōu)先模式下,運行原生版TensorFlow框架ResNet50(v1.5)推理模型所獲得的結果


          先別急,CPU運行ResNet 50推理模型的性能根本還沒發(fā)揮出來呢。


          優(yōu)化動作開始


          我們修改一下測試命令,同一個平臺,吞吐性能超過每秒172張圖片,時延也減少到6ms以內,性能一下提升到之前的2.37倍。


          圖注:劃橫線部分就是增加的代碼,意思是啟用TensorFlow中的oneDNN功能。oneDNN全稱為oneAPI Deep Neural Network Library,即oneAPI深度神經(jīng)網(wǎng)絡庫,它是從面向深度神經(jīng)網(wǎng)絡的英特爾數(shù)學核心函數(shù)庫(Intel MKL-DNN)發(fā)展而來的,是一個開源平臺(open-source cross-platform)性能庫,主要用于深度學習應用程序,面向基于英特爾架構的處理器進行了優(yōu)化,可充分利用其硬件加速特性提升運行AI應用的效率


          一句簡單的命令居然有這么大威力?原因何在?


          秘密就是:即便是在原生版的TensorFlow中,英特爾也貢獻了不少優(yōu)化代碼,其中很多都是來自oneDNN,這是英特爾開發(fā)和開源的面向深度神經(jīng)網(wǎng)絡的數(shù)學核心函數(shù)庫,包含了高度矢量化和線程化的構建模塊,可幫助深度神經(jīng)網(wǎng)絡調優(yōu),來充分利用英特爾架構CPU集成的AI加速能力。上面這句命令的作用就是開啟了oneDNN的優(yōu)化功能,可大大提升CPU運行AI推理類應用的效率。


          圖注:oneDNN的主要概念包括原語(primitives),引擎(engines),流(streams)和內存對象(memory objects)。針對基元和內存對象具有多個抽象級別,從而為用戶提供更高靈活性

          再進一步會怎樣


          還有更多、更神奇的功能嗎?


          接下來,我們使用英特爾自已發(fā)布的,專門且更為全面地面向英特爾架構優(yōu)化的TensorFlow框架,切換到這個環(huán)境再來運行ResNet 50推理模型。


          性能果然又有提升,又漲了約17%。


          圖注:在面向英特爾架構優(yōu)化的TensorFlow框架上運行ResNet50(v1.5)推理模型,吞吐性能提升到每秒超202張圖像,平均時延不到5ms。這種充分優(yōu)化后的TensorFlow框架及模型庫(model zoo)都已開源在GitHub上,任何人都可下載使用。安裝和使用方式與原生TensorFlow并無區(qū)別


          讓我們再算算:與最開始的、未經(jīng)優(yōu)化的TensorFlow環(huán)境相比,在面向英特爾架構優(yōu)化的TensorFlow框架的加持下,運行ResNet 50的推理性能,已達到前者的2.77倍以上。


          上述三輪測試考驗的,都是ResNet 50模型在全新第三代至強可擴展處理器上運行時的FP32性能。不難看出,只要優(yōu)化動作到位,性能提升也會立即到位,況且這還只是單顆CPU的性能表現(xiàn)。


          這意味著,企業(yè)用戶基本不需要對既有的IT基礎設施做大的改動,也不需要急著導入異構,只要你現(xiàn)在用的CPU是至強可擴展處理器,那么,你就具備了執(zhí)行AI推理的主要條件。


          再放大招,大大招


          你以為這就結束了么?并沒有,接下來才是大招。


          我們將開始在CPU上執(zhí)行INT8推理加速的測試。由于很多企業(yè)在使用AI推理時,并不需要FP32這么高的精度,我們可以把數(shù)據(jù)格式轉變?yōu)镮NT8,在確保準確率不明顯下降的情況下,看看性能會發(fā)生怎樣的變化。


          這輪測試我們必須要激活英特爾深度學習加速,也就是DL Boost技術中的INT8加速功能,同樣基于面向英特爾架構優(yōu)化的TensorFlow框架。結果是,時延降至3ms內,吞吐則超過了每秒391 張圖片。


          圖注:在面向英特爾架構優(yōu)化的TensorFlow中使用ResNet50(v1.5)運行INT8推理的結果


          終于,我們迎來了最后一輪測試。由于上面多輪測試都在考慮單路推理的性能,而在實際應用中,很多用戶都會跑多路推理,那么在這種情況下,用戶更希望在可接受的時延水平——譬如30ms上下——盡可能提升吞吐性能。


          這組測試中我們使用的至強鉑金8360Y處理器終于火力全開,單顆CPU 36個物理核心對應36個INT8實例。


          結果是:平均時延約為27ms,但總計吞吐能力超過每秒1300張圖片,這意味著用戶真地能用可接受的時延提升,換回3倍以上的性能輸出,多核威力有目共睹。


          圖注:使用36個INT8實例并行運行(所使用的英特爾至強鉑金8360Y處理器具有36核心,每核心運行一個INT8實例)的測試結果


          要知道,直到現(xiàn)在我們使用的都是單顆至強鉑金8360Y處理器,如果在一個雙路服務器中采用兩顆全上的策略,那么性能理論上是能夠翻倍,可見英特爾官宣的AI加速性能指標絕非空穴來風。


          看到這里,你對至強CPU的AI加速能力是否有了更為直觀的體驗呢?你是否也有使用CPU加速AI應用的獨到經(jīng)驗或問題呢?歡迎大家和我們分享,也歡迎大家一起動手探索驗證。


          ▲點擊上方卡片,關注CVer公眾號

          整理不易,請點贊和在看

          瀏覽 48
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  新超碰在线观看 | 性爱大全无码 | 欧美日韩成人一区二区在线观看 | 在线亚洲免费视频二 | 少妇免费网站 |