国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

    文章

    5194

    瀏覽量

    135453
  • AI
    AI
    +關注

    關注

    91

    文章

    39793

    瀏覽量

    301407
  • 人工智能
    +關注

    關注

    1817

    文章

    50098

    瀏覽量

    265380

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    淺談人工智能(2)

    接前文《淺談人工智能(1)》。 (5)什么是弱人工智能、強人工智能以及超人工智能? 弱人工智能(Weak
    的頭像 發表于 02-22 08:24 ?122次閱讀
    淺談<b class='flag-5'>人工智能</b>(2)

    了解Mojo編程語言

    Mojo 是種由 Modular AI 公司開發的編程語言,旨在將 Python 的易用性與 C 語言的高性能相結合,特別適合人工智能AI)、高性能計算(HPC)和系統級編程場景。
    發表于 11-07 05:59

    劃重點!浦江開源鴻蒙生態大會金句

    劃重點!浦江開源鴻蒙生態大會金句
    的頭像 發表于 10-16 17:29 ?651次閱讀
    劃重點!<b class='flag-5'>一</b>圖<b class='flag-5'>速</b><b class='flag-5'>覽</b>浦江開源鴻蒙生態大會金句

    【「AI芯片:科技探索與AGI愿景」閱讀體驗】+AI芯片的需求和挑戰

    景嘉微電子、海光信息技術、上海復旦微電子、上海壁仞科技、上海燧原科技、上海天數智芯半導體、墨芯人工智能、沐曦集成電路等。 在介紹完這些云端數據中心的AI芯片之后,還為我們介紹了邊緣AI芯片。 云端
    發表于 09-12 16:07

    利用超微型 Neuton ML 模型解鎖 SoC 邊緣人工智能

    應用。 為什么選擇 Neuton 作為開發人員,在產品中使用邊緣人工智能的兩個最大障礙是: ML 模型對于您所選微控制器的內存來說太大。 創建自定義 ML 模型本質上是個手動過程,需要高度的數據科學知識
    發表于 08-31 20:54

    人工智能+”,走老路難賺到新錢

    昨天的“人工智能+”刷屏了,這算是官方第次對“人工智能+”這個名稱定性吧?今年年初到現在,涌現出了大批基于人工智能的創業者,這已經算是
    的頭像 發表于 08-27 13:21 ?724次閱讀
    “<b class='flag-5'>人工智能</b>+”,走老路難賺到新錢

    AI 芯片浪潮下,職場晉升新契機?

    方向,就明確涵蓋了人工智能芯片的研發、部署與優化技術崗位 。如果你從事 GPU 相關研發工作,在申報職稱時,就需著重突出在圖形處理加速、大規模并行計算等方面的成果,因為 GPU 的高并行結構及強大浮點
    發表于 08-19 08:58

    AI 邊緣計算網關:開啟智能新時代的鑰匙?—龍興物聯

    計算網關在本地實時分析,旦檢測到盜竊、斗毆等異常行為,能立即發出警報,極大提高了安防監控的及時性和準確性,同時減輕了云端計算壓力,降低了網絡成本。? 豐富的人工智能算法應用,是AI 邊緣計算網關實現
    發表于 08-09 16:40

    挖到寶了!人工智能綜合實驗箱,高校新工科的寶藏神器

    的深度學習,構建起從基礎到前沿的完整知識體系,門實驗箱就能滿足多門課程的學習實踐需求,既節省經費又不占地 。 五、代碼全開源,學習底層算法 所有實驗全部開源,這對于想要深入學習人工智能技術的人來說
    發表于 08-07 14:30

    挖到寶了!比鄰星人工智能綜合實驗箱,高校新工科的寶藏神器!

    的深度學習,構建起從基礎到前沿的完整知識體系,門實驗箱就能滿足多門課程的學習實踐需求,既節省經費又不占地 。 五、代碼全開源,學習底層算法 所有實驗全部開源,這對于想要深入學習人工智能技術的人來說
    發表于 08-07 14:23

    超小型Neuton機器學習模型, 在任何系統級芯片(SoC)上解鎖邊緣人工智能應用.

    Neuton 是家邊緣AI 公司,致力于讓機器 學習模型更易于使用。它創建的模型比競爭對手的框架小10 倍,速度也快10 倍,甚至可以在最先進的邊緣設備上進行人工智能處理。在這篇博文中,我們將介紹
    發表于 07-31 11:38

    迅為RK3588開發板Linux安卓麒麟瑞芯微國產工業AI人工智能

    迅為RK3588開發板Linux安卓麒麟瑞芯微國產工業AI人工智能
    發表于 07-14 11:23

    最新人工智能硬件培訓AI 基礎入門學習課程參考2025版(大模型篇)

    人工智能大模型重塑教育與社會發展的當下,無論是探索未來職業方向,還是更新技術儲備,掌握大模型知識都已成為新時代的必修課。從職場上輔助工作的智能助手,到課堂用于學術研究的智能工具,大模型正在工作生活
    發表于 07-04 11:10

    開售RK3576 高性能人工智能主板

    ,HDMI-4K 輸出,支 持千兆以太網,WiFi,USB 擴展/重力感應/RS232/RS485/IO 擴展/I2C 擴展/MIPI 攝像頭/紅外遙控 器等功能,豐富的接口,個全新八核擁有超強性能的人工智能
    發表于 04-23 10:55

    AI人工智能隱私保護怎么樣

    在當今科技飛速發展的時代,AI人工智能已經深入到我們生活的方方面面,從醫療診斷到交通調度,從教育輔助到娛樂互動,其影響力無處不在。然而,隨著AI人工智能的廣泛應用,其安全性問題也備受關
    的頭像 發表于 03-11 09:46 ?1202次閱讀
    <b class='flag-5'>AI</b><b class='flag-5'>人工智能</b>隱私保護怎么樣