在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一文速覽:人工智能(AI)算法與GPU運行原理詳解

中科院半導體所 ? 來源:半導體全解 ? 2025-02-14 10:28 ? 次閱讀

本文介紹人工智能的發展歷程、CPUGPUAI中的應用、CUDA架構及并行計算優化,以及未來趨勢。

一、人工智能發展歷程

當今,人工智能(Artificial Intelligence)已經深刻改變了人類生活的方方面面,并且在未來仍然會繼續發揮越來越重要的影響力?

“人工智能”這一概念在1956年于美國達特茅斯學院舉辦的一次學術集會上被首次提出,自此開啟了人工智能研究的新紀元?自此之后,人工智能在曲折中不斷發展前進?

1986年,神經網絡之父Geoffrey Hinton提出了適用于多層感知機(Multilayer Perceptron,MLP)的反向傳播(Back propagation,BP)算法,并且使用Sigmoid函數實現非線性映射,有效解決了非線性分類和學習問題?

1989年,YannLeCun設計了第一個卷積神經網絡,并將其成功應用于手寫郵政編碼識別任務中?

20世紀90年代,Cortes等人提出支持向量機(SupportVector Machine, SVM)模型,隨后SVM迅速發展成為機器學習的代表性技術之一,在文本分類?手寫數字識別?人臉檢測和生物信息處理等方面取得了巨大成功?

進入21世紀,隨著互聯網技術的發展與計算機硬件系統性能的提高,人工智能迎來了新的重大發展機遇?特別是2011年以來,以深度神經網絡為代表的深度學習技術高速發展,人類在通向人工智能的道路上接連實現了許多重大突破?

二、CPU和GPU在人工智能中的應用

GPU最初是用于圖像處理的,但由于高性能計算需求的出現,GPU因其高度 并行的硬件結構而得以顯著提升其并行計算和浮點計算能力,且性能遠超于CPU。

由于訓練深度神經網絡的計算強度非常大,因而在CPU上訓練神經網絡模型的時間往往非常長?

如圖所示,CPU主要由控制器、算數邏輯單元(Arithmetic and Logic Unit,ALU)和儲存單元三個主要部分組成,CPU的計算能力主要取決于計算核心ALU的數量,而ALU又大又重,使得CPU常用來處理具有復雜控制邏輯的串行程序以提高性能。

相比之下,GPU由許多SP(Streaming Processor,流處理器)和存儲系統組成,SP又被稱為CUDA核心,類似CPU中的ALU,若干個SP被組織成一個SM(Streaming Multiprocessors,流多處理器)。

GPU中的SP數量眾多且體積較小,這賦予了GPU強大的并行計算和浮點運算能力,常用來優化那些控制邏輯簡單而數據并行性高的任務,且側重于提高并行程序的吞吐量。

圖形處理器(GraphicsProcessing Unit, GPU)具有強大的單機并行處理能力,特別適合計算密集型任務,已經廣泛應用于深度學習訓練?

然而單個GPU的算力和存儲仍然是有限的,特別是對于現在的很多復雜深度學習訓練任務來說,訓練的數據集十分龐大,使用單個GPU訓練深度神經網絡(DeepNeural Network ,DNN)模型需要漫長的訓練時間?

例如,使用一塊Nvidia M40 GPU在ImageNet-1K上訓練ResNet-50 90個epoch需要14天時間?此外,近年來深度神經網絡的模型參數規模急劇增加,出現了很多參數量驚人的“巨模型”?

由于在訓練這些大規模DNN模型時,無法將全部模型參數和激活值放入單個GPU中,因此無法在單GPU上訓練這些超大規模DNN模型?

隨著計算機體系結構的飛速發展,并行(Parallelism)已經在現代的計算機體系結構中廣泛存在,目前的計算機系統普遍具有多核或多機并行處理能力?

按照存儲方式的不同,并行計算機體系結構通常分為兩種:共享存儲體系結構和分布存儲體系結構?

對于共享存儲體系結構,處理器通常包含多個計算核,通常可以支持多線程并行?然而由于存儲和算力的限制,使用單個計算設備上往往無法高效訓練機器學習模型?多核集群系統是目前廣泛使用的多機并行計算平臺,已經在機器學習領域得到廣泛應用?

多核集群系統通常以多核服務器為基本計算節點,節點間則通過Infiniband高速互聯網絡互聯?此外,在深度學習訓練領域,單機多卡(One Machine Multiple GPUs)和多機多卡(Multiple Machines Multiple GPUs)計算平臺也已經發展成為并行訓練神經網絡的主流計算平臺?

消息傳遞接口(MessagePassing Interface, MPI)在分布式存儲系統上是被廣泛認可的理想程序設計模型,也為機器學習模型的并行與分布式訓練提供了通信技術支撐?機器學習模型并行訓練的本質是利用多個計算設備協同并行訓練機器學習模型?

機器學習模型的并行訓練過程一般是,首先將訓練數據或模型部署到多個計算設備上,然后通過這些計算設備協同并行工作來加速訓練模型?

機器學習模型的并行訓練通常適用于以下兩種情況:

(1)當模型可以載入到單個計算設備時,訓練數據非常多,使用單個計算設備無法在可接受的時間內完成模型訓練;

(2)模型參數規模非常大,無法將整個模型載入到單個計算設備上;機器學習模型并行訓練的目的往往是為了加速模型訓練,機器學習模型訓練的總時間往往是由單次迭代或者單個epoch的計算時間與收斂速度共同作用的結果?訓練模型使用的優化算法決定了收斂速度,而使用合適的并行訓練模式則可以加快單次迭代或者單個epoch的計算?在并行訓練機器學習模型時,首先要把數據分發到多個不同的計算設備上?

按照數據分發方式的不同,模型的并行訓練模式一般可以分為數據并行?模型并行和流水線并行?

上圖是三種并行訓練模式的示意圖?

數據并行(DataParallelism)是當前最流行的DNN并行訓練方法?

當前流行的許多深度學習框架如Tensor Flow, PyTorch和Horovod等都提供了方便使用的API來支持數據并行?

如圖(a)所示,在數據并行中,每個計算設備都擁有全部的并且完全一致的模型參數,然后被分配到不同的批處理訓練數據?當所有計算設備上的梯度通過參數服務器或者Allreduce這樣的集合通信操作來實現求和之后,模型參數才會更新?

深度神經網絡通常是由很多層神經元連續堆疊而成,每一層神經元形成了全連接層(Fully Connected Layers)?卷積層(Convolutional Layers)等不同類型的運算子(Operator)?

傳統的模型并行(ModelParallelism)是將神經網絡模型水平切分成不同的部分,然后分發到不同的計算設備上?

如圖(b)所示,模型并行是將不同運算子的數據流圖(Data flow Graph)切分并存儲在多個計算設備上,同時保證這些運算子作用于同一個批處理訓練數據?由于這種切分是將運算子從水平層次進行切分,因此通常模型并行也稱為運算子并行(Operator Parallelism)或水平并行(Horizontal Parallelism)?

當把神經網絡模型按層進行垂直切分時,模型并行可進一步歸類為流水線并行(Pipeline Parallelism)?如圖(c)所示,流水線并行是將神經網絡按層切分成多個段(Stage),每個Stage由多個連續的神經網絡層組成?然后所有Stage被分配到不同的計算設備上,這些計算設備以流水線方式并行地訓練?神經網絡的前向傳播從第一個計算設備開始,向后做前向傳播,直到最后一個計算設備完成前向傳播?隨后,神經網絡的反向傳播過程從最后一個計算設備開始,向前做反向傳播,直到第一個計算設備完成反向傳播?

在算法加速方面,目前加速算法的研究主要是利用不同平臺的計算能力完成?主流的加速平臺包括專用集成電路(Application Specific Integrated Circuit, ASIC)?現場可編程邏輯門陣列(Field-Programmable Gate Array, FPGA芯片和圖形處理器(Graphics Processing Unit, GPU)等?

其中,ASIC芯片定制化程度較高,設計開發周期長,難以應對迅速變化的市場需求;FPGA芯片是一種可編程的集成電路芯片,自由度相對較高,投入使用比ASIC快,成本與ASIC相比較低,但是由于FPGA芯片仍屬于硬件并行設計的范疇,通用性和成本與GPU相比欠佳?

三、什么是CUDA?

CUDA(ComputeUnified Device Architecture)全稱統一計算架構,作為NIVIDA公司官方提出的GPU編程模型,它提供了相關接口讓開發者可以使用GPU完成通用計算的加速設計,能夠更加簡單便捷地構建基于GPU的應用程序,充分發揮GPU的高效計算能力和并行能力?

CUDA同時支持C/C++,Python等多種編程語言,使得并行算法具有更高的可行性?由于GPU不是可以獨立運行的計算平臺,因此在使用CUDA編程時需要與CPU協同實現,形成一種CPU+GPU的異構計算架構,其中CPU被稱為主機端(Host),GPU被稱為設備端(Device)?

GPU主要負責計算功能,通過并行架構與強大的運算能力對CPU指派的計算任務進行加速。通過 CPU/GPU 異構架構和CUDA C語言,可以充分利用GPU資源來加速一些算法。

典型的GPU體系結構如下圖所示,GPU和CPU的主存都是采用DRAM實現,存儲結構也十分類似?但是CUDA將GPU內存更好地呈現給程序員,提高了GPU編程的靈活性?

CUDA程序實現并行優化程序設計的具體流程主要分為三個步驟:

1?將數據存入主機端內存并進行初始化,申請設備端內存空間并將主機端的數據裝載到設備端內存中;

2?調用核函數在設備端執行并行算法,核函數是指在GPU中運行的程序,也被稱為kernel函數?

3?將算法的最終運行結果從設備端內存卸載到主機端,最后釋放設備端和主機端的所有內存?

GPU的核心組件是流式多處理器(Streaming Multiprocessor,簡稱SM),也被稱為GPU大核,一個GPU設備含有多個SM硬件,SM的組件包括CUDA核心,共享內存和寄存器等?

其中,CUDA核心(CUDA core)是GPU最基本的處理單元,具體的指令和任務都是在這個核心上處理的,本質上GPU在執行并行程序的時候,是在使用多個SM同時處理不同的線程?而共享內存和寄存器是SM內部最重要的資源,在很大程度上GPU的并行能力就取決于SM中的資源分配能力?

在CUDA架構中,網格(Grid),塊(Block)和線程(Thread)是三個十分重要的軟件概念,其中線程負責執行具體指令的運行任務,線程塊由多個線程組成,網格由多個線程塊組成,線程和線程塊的數量都可以通過程序的具體實現設定?

GPU在執行核函數時會以一個網格作為執行整體,將其劃分成多個線程塊,再將線程塊分配給SM執行計算任務?

GPU內存結構如下圖所示,主要包括位于SP內部的寄存器(Register)?位于SM上的共享內存(Shared memory)和GPU板載的全局內存(Global memory)?

在NVIDIA提出的CUDA統一編程模型中采用Grid的方式管理GPU上的全部線程,每個Grid中又包含多個線程塊(Block),每個Block中又可以劃分成若干個線程組(Warp)?Warp是GPU線程管理的最小單位,Warp內的線程采用單指令多線程(Single Instruction MultipleThreads, SIMT)的執行模式?

CUDA線程管理的基本結構如下圖所示:

GPU獨特的體系架構和強大的并行編程模型,使得GPU在并行計算和內存訪問帶寬方面具有獨特的性能優勢?

相對于傳統的CPU體系結構,GPU具有一些獨特的優勢:

1)并行度高?計算能力強?相對于CPU體系結構,GPU內部集成了更多的并行計算單元,使得GPU在并行計算能力方面的表現更加出色?同時,其理論計算峰值也遠高于同時期CPU,當前NVIDIA A100 GPU在執行Bert推理任務,其推理速度可達2個Intel至強金牌6240CPU的249倍6?

2)訪存帶寬高?為了匹配GPU超強的并行能力,GPU內部設置了大量訪存控制器和性能更強的內部互聯網絡,導致GPU具有更高的內存訪問帶寬?當前NVIDIAA100 GPU的內存帶寬可達1.94TB/s,而同期Intel至強金牌6248 CPU僅為137GB/s?圖處理由于其計算訪存比高,算法執行過程中計算次數多?單次計算量小的特點天然地與GPU的硬件特征相匹配?

四、總結

隨著深度學習(DeepLearning,DL)的持續進步,各類深度神經網絡(DeepNeural Network ,DNN)模型層出不窮?DNN不僅在精確度上大幅超越傳統模型,其良好的泛化性也為眾多領域帶來了新的突破?

因此,人工智能(Artificial Intelligence, AI)技術得以迅速應用于各個行業?如今,無論是在物聯網(Intemet of Things, IoT)的邊緣設備,還是數據中心的高性能服務器,DNN的身影隨處可見,人工智能的發展離不開計算能力的提升,因此高性能GPU的需求也將不斷提升!

參考文獻:

(1)楊翔 深度學習模型的并行推理加速技術研究[D]。

(2)鄭志高 GPU上圖處理算法優化關鍵技術研究[D]。

(3)關磊 機器學習模型并行訓練關鍵技術研究[D]。

(4)薛圣瓏 機載預警雷達雜波快速生成及GPU實現研究[D]。

(5)韓吉昌 基于CUDA的國密算法SM3和SM4的設計與實現[D].


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • gpu
    gpu
    +關注

    關注

    28

    文章

    4794

    瀏覽量

    129484
  • AI
    AI
    +關注

    關注

    87

    文章

    31834

    瀏覽量

    270609
  • 人工智能
    +關注

    關注

    1796

    文章

    47864

    瀏覽量

    240723

原文標題:一文了解人工智能(AI)算法及GPU運行原理

文章出處:【微信號:bdtdsj,微信公眾號:中科院半導體所】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    嵌入式和人工智能究竟是什么關系?

    人工智能的結合,無疑是科技發展中的場革命。在人工智能硬件加速中,嵌入式系統以其獨特的優勢和重要性,發揮著不可或缺的作用。通過深度學習和神經網絡等算法,嵌入式系統能夠高效地處理大量數
    發表于 11-14 16:39

    AI for Science:人工智能驅動科學創新》第6章人AI與能源科學讀后感

    幸得好書,特此來分享。感謝平臺,感謝作者。受益匪淺。 在閱讀《AI for Science:人工智能驅動科學創新》的第6章后,我深刻感受到人工智能在能源科學領域中的巨大潛力和廣泛應
    發表于 10-14 09:27

    AI for Science:人工智能驅動科學創新》第4章-AI與生命科學讀后感

    很幸運社區給我個閱讀此書的機會,感謝平臺。 《AI for Science:人工智能驅動科學創新》第4章關于AI與生命科學的部分,為我們揭示了人工
    發表于 10-14 09:21

    AI for Science:人工智能驅動科學創新》第二章AI for Science的技術支撐學習心得

    非常高興本周末收到本新書,也非常感謝平臺提供閱讀機會。 這是本挺好的書,包裝精美,內容詳實,干活滿滿。 關于《AI for Science:人工智能驅動科學創新》第二章“
    發表于 10-14 09:16

    AI for Science:人工智能驅動科學創新》第人工智能驅動的科學創新學習心得

    ,還促進了新理論、新技術的誕生。 3. 挑戰與機遇并存 盡管人工智能為科學創新帶來了巨大潛力,但第章也誠實地討論了伴隨而來的挑戰。數據隱私、算法偏見、倫理道德等問題不容忽視。如何在利用AI
    發表于 10-14 09:12

    risc-v在人工智能圖像處理應用前景分析

    人工智能推薦系統中強大的圖形處理器(GPU爭高下。其獨特的設計使得該處理器在功耗受限的條件下仍能實現高性能的圖像處理任務。 Ceremorphic公司 :該公司開發的分層學習處理器結合了
    發表于 09-28 11:00

    人工智能ai 數電 模電 模擬集成電路原理 電路分析

    人工智能ai 數電 模電 模擬集成電路原理 電路分析 想問下哪些比較容易學 不過好像都是要學的
    發表于 09-26 15:24

    人工智能ai4s試讀申請

    目前人工智能在繪畫對話等大模型領域應用廣闊,ai4s也是方興未艾。但是如何有效利用ai4s工具助力科研是個需要研究的課題,本書對ai4s基本原理和原則,方法進行描訴,有利于總結經驗,擬
    發表于 09-09 15:36

    名單公布!【書籍評測活動NO.44】AI for Science:人工智能驅動科學創新

    ! 《AI for Science:人工智能驅動科學創新》 這本書便將為讀者徐徐展開AI for Science的美麗圖景,與大家起去了解: 人工
    發表于 09-09 13:54

    報名開啟!深圳(國際)通用人工智能大會將啟幕,國內外大咖齊聚話AI

    8月28日至30日,2024深圳(國際)通用人工智能大會暨深圳(國際)通用人工智能產業博覽會將在深圳國際會展中心(寶安)舉辦。大會以“魅力AI·無限未來”為主題,致力于打造全球通用人工智能
    發表于 08-22 15:00

    FPGA在人工智能中的應用有哪些?

    FPGA(現場可編程門陣列)在人工智能領域的應用非常廣泛,主要體現在以下幾個方面: 、深度學習加速 訓練和推理過程加速:FPGA可以用來加速深度學習的訓練和推理過程。由于其高并行性和低延遲特性
    發表于 07-29 17:05

    AI訓練,為什么需要GPU

    隨著由ChatGPT引發的人工智能熱潮,GPU成為了AI大模型訓練平臺的基石,甚至是決定性的算力底座。為什么GPU能力壓CPU,成為炙手可熱的主角呢?要回答這個問題,首先需要了解當前
    的頭像 發表于 04-24 08:05 ?1075次閱讀
    <b class='flag-5'>AI</b>訓練,為什么需要<b class='flag-5'>GPU</b>?

    FPGA在深度學習應用中或將取代GPU

    現場可編程門陣列 (FPGA) 解決了 GPU運行深度學習模型時面臨的許多問題 在過去的十年里,人工智能的再次興起使顯卡行業受益匪淺。英偉達 (Nvidia) 和 AMD 等公
    發表于 03-21 15:19

    NanoEdge AI的技術原理、應用場景及優勢

    NanoEdge AI種基于邊緣計算的人工智能技術,旨在將人工智能算法應用于物聯網(IoT)設備和傳感器。這種技術的核心思想是將數據處理和分析從云端轉移到設備本身,從而減少數據傳
    發表于 03-12 08:09

    嵌入式人工智能的就業方向有哪些?

    于工業、農業、醫療、城市建設、金融、航天軍工等多個領域。在新時代發展背景下,嵌入式人工智能已是大勢所趨,成為當前最熱門的AI商業化途徑之。
    發表于 02-26 10:17
    主站蜘蛛池模板: 性欧美日韩 | 精品视频一二三区 | 日韩色网站| 夜色爽爽| 亚洲综合校园春色 | 久久精品人人爽人人爽 | 爱操综合网 | 色视频免费版高清在线观看 | 五月情网 | 凹凸福利视频导航 | 人人草在线 | 久久精品2020 | 思思久久96热在精品不卡 | 激情五月婷婷网 | 亚洲五月婷婷 | 天天射日日操 | 亚洲欧美日韩高清mmm777 | 男人不识本网站上遍色站也枉然 | 模特精品视频一区 | 欧美成人伊人十综合色 | 日韩天堂在线观看 | 色偷偷成人网免费视频男人的天堂 | 国模张文静啪啪私拍337p | 国产精品久久久久乳精品爆 | 成年免费大片黄在线观看免费 | 久久久午夜精品理论片 | 久久天天躁狠狠躁狠狠躁 | 老师您的兔子好软水好多动漫视频 | 男人你懂的网站 | 亚洲精品第三页 | 999久久久免费精品国产牛牛 | 加勒比精品久久一区二区三区 | 欧美影院一区二区 | 综合啪啪 | 欧美xxxxx性视频 | 四虎永久在线精品网址 | 一级aaaaaa片毛片在线播放 | 色免费在线观看 | 亚洲香蕉电影 | xyx性爽欧美视频 | 爽死你个放荡粗暴小淫视频 |