加速計算,為何會成為 AI 時代的計算力“新寵”

隨著科技的發展,處理大量數據和進行復雜計算的需求越來越高,人工智能、大數據和物聯網等領域更是如此,傳統的計算方式已經無法滿足這些需求。因此,加速計算作為一種現代計算方式,成了必要的手段。加速計算具有前所未有的處理能力,在云基礎設施中發揮著核心作用,因為它有助于更高效、更有效地管理數據中心的海量信息。此外,加速計算還能提供必要的計算能力和內存,以便更高效地訓練和實施 GPT-4 等高級生成式人工智能模型。這種能力可加快訓練時間、處理大型數據集和開發日益復雜的模型。

加速計算利用 GPU、ASIC、TPU 和 FPGA 等專用硬件來執行比 CPU 更高效的計算,從而提高速度和性能。它尤其適用于可并行化的任務,如高性能計算、深度學習、機器學習和人工智能。

加速計算發展迅速,各種硬件和軟件解決方案如 GPU、ASIC、TPU、FPGA、CUDA、OpenCL 和網絡技術層出不窮。下面我們來深入了解一下加速計算,就能明白為何它會成為 AI 時代的計算力“新寵”。

什么是加速計算

加速計算是指使用專用硬件來執行某些類型的計算,其效率要比僅使用通用中央處理器(CPU)高。利用圖形處理單元(GPU)、專用集成電路(ASIC)(包括張量處理單元(TPU))和現場可編程邏輯門陣列(FPGA)等設備的強大功能,以更高的速度執行計算,從而加速計算過程,一般我們也將這些設備稱之為加速器。

這些加速器尤其適用于可被分解為較小并行任務的項目,如高性能計算 (HPC)、深度學習、機器學習、人工智能和大數據分析。通過將指定類型的工作分派到這些專用加速計算硬件上,大大提高了系統的性能和效率。

加速計算因其高效處理海量數據的能力,從而推動了機器學習、AI、實時分析和科學研究的進步。加速計算在圖形、游戲、邊緣計算和云計算領域的影響力與日俱增,是數據中心等數字基礎設施的骨干力量。隨著對更強大應用和系統的需求日益增長,傳統的 CPU 方法難以與加速計算競爭,而加速計算可提供更快、更具成本效益的性能升級。

加速計算解決方案

加速計算解決方案涉及硬件、軟件和網絡的結合。這些解決方案專門用于提高復雜計算任務的速度和效率。

硬件

硬件加速器是加速計算的基礎,這些加速器包括圖形處理器 (GPU)、專用集成電路 (ASIC) 和現場可編程門陣列 (FPGA)。

GPU

圖形處理器(GPU)廣泛用于各種計算密集型任務,其優勢在于可以同時執行許多復雜的計算,因此非常適合高性能計算(HPC)和機器學習中的神經網絡訓練等任務。

英偉達公司數據中心和計算密集型任務(機器學習、人工智能)的 GPU 市場上處于領先地位。該公司用于數據中心的主要 GPU 架構包括 Hopper (H100) 和 Ampere (A100)。值得一提的是,H100 GPU 非常適合加速涉及大型語言模型 (LLM)、深度推薦系統、基因學和復雜數字孿生的應用。

應用型專用集成電路 ASIC

應用型專用集成電路(ASIC)是為執行特定任務而設計的定制芯片,與 CPU 不同, CPU 可處理各種應用。由于專用集成電路是為特定功能定制的,因此執行任務的效率比 CPU 更高,在速度、功耗和整體性能方面都具有優勢。

我們常常在科技文章中看到的神經處理單元(NPU)和深度學習處理器(DLP)就是 ASIC 中的一員,還有谷歌的張量處理單元(TPU)也是 ASIC 下的一員猛將。TPU 專為加速機器學習工作荷載而設計,它們被廣泛應用于語言翻譯、谷歌助手中的語音識別和智能化廣告排名等項目中。

現場可編程邏輯門陣列 FPGA

現場可編程邏輯門陣列(FPGA)是一種半導體集成電路,與 CPU 相比,FPGA 可重新編程以便能更高效地執行特定任務。與 ASIC、GPU 和 CPU 的固定架構不同,FPGA 硬件包括可配置邏輯塊和可編程互連。這樣,即使在芯片出廠和部署后,也可以進行功能更新。

FPGA 憑借其靈活性和并行計算能力,在數據中心的高性能計算、AI、機器學習中越來越受歡迎。不過,與 GPU 和定制 ASIC 解決方案相比,FPGA 的開發速度較慢,其軟件生態系統目前也不夠健全,由于其編程復雜,專業工程師的數量也很有限。

軟件

加速計算利用應用編程接口(API)和編程模型(如 CUDA 和 OpenCL)來連接軟件和硬件。這樣可以優化數據流,從而提高性能、能效、成本效益和準確性。開發人員通過 API 和編程模型,就能夠編寫在 GPU 上運行的代碼,并利用軟件程序庫實現高效算法。

CUDA

CUDA(全稱為 Compute Unified Device Architecture,統一計算架構)是英偉達公司開發的專有并行計算平臺和 API 模型,通過這個技術,開發者可利用英偉達的 GPU 進行圖像處理之外的運算,顯著加速計算任務。該平臺包括 cuDNN、TensorRT 和 DeepStream 等深度學習庫,可增強人工智能訓練和推理任務。

自 2006 年推出以來,CUDA 已被下載 4000 萬次,在全球擁有 400 萬開發者用戶群,已形成了一個龐大的開發者社區,因此英偉達公司在數據中心硬件和軟件市場上占據了顯著優勢。

OpenCL

OpenCL(Open Computing Language,開放計算語言)是一個為異構平臺編寫程序的框架。OpenCL 的一個特別顯著的特點是它在不同硬件類型之間的可移植性,平臺可由 CPU、GPU、FPGA 或其他類型的處理器與硬件加速器所組成。其廣泛的兼容性使開發人員能夠利用這些不同硬件的強大功能,來進行加速計算。

網絡

網絡在加速計算中發揮著至關重要的作用,因為它有助于成千上萬個處理單元和內存以及存儲設備之間的通信。各種網絡技術被用來實現這些計算設備與系統其他設備之間的通信,并在網絡內的多個設備之間共享數據。常見的技術有:

  • PCI Express(PCIe):PCIe 是計算機總線的一個重要分支,它沿用既有的 PCI 編程概念及信號標準,并且構建了更加高速的串行通信系統標準。這一標準提供了計算設備與 CPU、內存之間的直接連接。在加速計算中,PCIe 通常用于將 GPU 或其他加速器連接到主機系統。
  • NVLink:英偉達公司專有的高帶寬、高能效互連技術,可提供比 PCIe 高得多的帶寬。該技術旨在促進 GPU 之間以及 GPU 與 CPU 之間更高效的數據共享。
  • Infinity Fabric:AMD 公司專有的互連技術,用于連接其芯片中的各種組件,包括 CPU、GPU 和內存。
  • Compute Express Link (CXL):CXL 是一種開放式互連標準,有助于減少 CPU 和加速器之間的延遲同時增加帶寬。它將多個接口合并為一個 PCIe 接口,連接到 CPU。
  • InfiniBand:一種高速、低延遲的互連技術,通常用于高性能計算(HPC)設置。它實現了服務器集群和存儲設備之間的高速互連。
  • 以太網:應用最廣泛最成熟的網絡技術,主要用于在數據中心的服務器之間傳輸大量數據。但是,它無法提供與 NVLink 或 InfiniBand 相同的性能水平。

△ NVLink 和 PCIe 與 CPU 連接的 GPU 架構

加速計算應用場景

生成式AI

加速計算是開發和實施先進的生成式 AI 模型的關鍵因素。生成式 AI 涉及使用算法來統計特征上與訓練集相似的數據,在圖像、文本和語音領域都有廣泛應用。

在生成式 AI 領域,會用到生成對抗網絡(GANs)、變異自動編碼器(VAEs)和變換器(Transformers)等模型,還有包括 OpenAI 的 ChatGPT 的大型語言模型(LLMs)。這些模型所涉及到的復雜數學運算,需要在大型數據集上進行訓練,并需要大量的計算能力和內存。更具體地說,模型大小、每層復雜度、序列長度和多樣化是計算需求日益增加的最主要因素。

加速計算在解決生成式 AI 的計算能力和內存需求方面發揮著至關重要的作用,其主要作用在加快訓練時間、處理大型數據集、支持復雜模型、促進實時生成并保障高效梯度計算。

加快訓練時間

加速計算在生成式 AI 中最重要的作用是縮短 GAN、VAE 和 Transformer 模型的訓練時間。在基于 CPU 的傳統架構上,這些模型的訓練通常需要數天、數周甚至數月的時間,但 GPU 和 TPU 等加速計算平臺是專為并行處理而設計的加速硬件,它們能夠同時并行處理多個計算,從而大大縮短了訓練時間。

處理大型數據集

生成式 AI 模型通常在海量數據集上進行訓練,與傳統 CPU 相比,加速計算硬件可以更高效地處理這些大型數據集。此外,使用先進的內存架構(如某些 GPU 中的高帶寬內存)可以在訓練過程中高效處理這些大型數據集。

創建復雜模型

加速計算所帶來的計算能力的提升,可以創建更復雜、更大型的模型,從而獲得更好的結果。例如,像 GPT-4 這樣擁有 170 萬億個參數的生成型預訓練變換模型,只有通過加速計算才能實現。

實時功能

在某些應用中,人工智能模型需要實時(或接近實時)生成輸出。這對于交互式應用(如視頻游戲中的人工智能和實時翻譯)尤為重要。加速計算可確保快速執行這些操作,從而實現實時功能。

高效的計算梯度

深度學習模型通過使用基于梯度的優化技術(如反向傳播)進行學習。這些計算方法以誤差或損失函數最小化的方向來迭代調整模型參數。由于計算是基于矩陣的,因此具有很高的并行性,非常適合選用加速計算方案來處理。

AI數據中心

加速計算平臺的目的是加速各類數據中心的計算密集型工作,包括人工智能、數據分析、圖形和科學計算。這些數據中心包括企業、主機托管、超大規模/云、邊緣和模塊化設施,其主要目標是提高工作負載性能,同時降低功耗和每次查詢的成本。

生成式 AI 和大型語言模型(LLM)在消費者、互聯網公司、企業和初創公司中的興起,使人工智能的應用進入了一個快速發展時刻,加速了數據中心和云平臺中的 AI 推理部署。目前,大多數 AI 推理工作都部署在 CPU 和網絡接口卡(NIC)上運行。然而,由于性能、能效、成本效益和功耗限制的日益增加,業界正在轉向利用 GPU 和 ASIC 等專用硬件進行加速計算。

現代數據中心的發展方向之一,就是建立一個可持續運行的 " AI 工廠"。通過 LLM、推薦系統以及最終的推理模型等人工智能模型,配備推理機群,以便支持各種各樣的工作任務,例如視頻處理、文本生成、圖像生成以及虛擬世界和虛擬 3D 圖形。

使用GPU進行加速計算

使用 GPU 進行加速計算方法主要有三大類:

  • 使用商業套裝軟件
  • 使用開源或官方函式庫
  • 自行編程 CUDA

第一項種類繁多,其中又以有限元素分析領域最多,此領域相關計算包含流體力學分析、熱傳導分析、電磁場分析或應力分析等等應用。由于范圍涵蓋 IC 設計、建筑設計、甚至許多交通工具或化工廠也需要通過這類軟件進行模擬分析,所以開發這類軟件有很大的商業價值。

第二項則比較個性化,由開發者自行編寫程序,GPU 的計算組件則可以引用他人已經準備好的函數庫,或者參考英偉達官方提供的函數庫,也可以從 GitHub 上進行搜索。

第三項就必須通過編程語言進行 CUDA 編寫,不同的編程語言能夠操縱的自由度也各不相同,其中 C/C++ 或 Fortran屬于開發自由度最高的編程語言,可從底層控制 GPU 計算,甚至可以針對本機內存與 GPU 內存數據的傳輸進行優化。其次則為 Python,Python 也是目前市面上最主流的 AI 應用開發語言,實現的方式包括 PyCuda 或者使用Numba 函數庫。另外,Java、R、C# 等也都可以支持 CUDA。

又拍云聯合厚德云推出 GPU 產品,可方便快捷一鍵搭建 CUDA 、Stable Diffusion 等開發環境,現活動期間新用戶注冊即可免費體驗 RTX4090 GPU。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/539946.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539946.shtml
英文地址,請注明出處:http://en.pswp.cn/news/539946.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java中nextfloat怎么用,關于java的nextFloat()后面跟一個nextLine()

ArrayList studentInfors new ArrayList();Scanner sc new Scanner(System.in);for (int i 0; i StudentInfor studentInfor new StudentInfor();System.out.print("請輸入學生學號:");studentInfor.setNum(sc.nextLine());System.out.print("請…

背景選擇器selector替換按鈕默認背景

一、效果 正常狀態 獲取焦點或按下 按鈕的背景圖片是.9圖,.9圖的制作過程,見下面博文 http://blog.csdn.net/zengmingen/article/details/50193245 二、步驟 模仿android自帶的按鈕控件編寫1、找到android自帶按鈕的樣式。D:\ADT\sdk\platforms\andro…

php 取數值整數的函數是,PHP取整數函數常用的四種方法小結

ceil — 進一法取整說明float ceil ( float value )返回不小于 value 的下一個整數,value 如果有小數部分則進一位。ceil() 返回的類型仍然是 float,因為 float 值的范圍通常比 integer 要大。例子 1. ceil() 例子echo ceil(4.3); // 5echo ceil(9.999);…

ios 獲取控件高度

2019獨角獸企業重金招聘Python工程師標準>>> 1.ios 獲取控件相對屏幕的位置 需要獲取的對象為view1,則該視圖相對屏幕的位置可使用下面方法實現: UIWindow * window[[[UIApplication sharedApplication] delegate] window]; CGRect rect[view…

php文件上傳前端頁面樣式,HTML實現美化上傳文件樣式

這篇文章介紹的內容是HTML實現美化上傳文件i樣式 ,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下傳統寫法上傳文件效果如下圖所示這個樣式調整了很長時間,最后結果都不盡人意。非常規寫法上傳文件上傳給真正的用于…

jquery mobile用代碼彈出dialog

一、點擊彈出dialog 見http://www.w3school.com.cn/jquerymobile/jquerymobile_pages.asp中“將頁面作為dialog”這節二、代碼彈出 思路&#xff1a;模擬一個點擊事件。1、在頁面上隱藏一個<a>,如下 <a id"test" href"#pagetwo" style"displ…

畢設開發日志2017-12-01-Scan超時

【前言】 本篇博客主要描述一下在開發過程中遇到的scan的超時問題。 【問題描述】 剛剛完成了對索引表的定義和建議&#xff0c;并且在單元測試中對該表進行插入和掃描時均未發現錯誤。但是在對該表進行整體更新時&#xff0c;需要在掃描weather表的過程中對該表進行不斷的更新…

ubuntu java 1.6 安裝,ubuntu 中安裝java jdk 1.6

--------------------------------------------------------------------------------------------本文系本站原創,歡迎轉載!轉載請注明出處:http://blog.csdn.net/gdt_a20/article/details/7307681-------------------------------------------------------------------------…

Oracle修改表結構字段名和字段長度

添加字段的語法&#xff1a;alter table tablename add (column datatype [default value][null/not null],….); 修改字段的語法&#xff1a;alter table tablename modify (column datatype [default value][null/not null],….); 刪除字段的語法&#xff1a;alter table tab…

php快速排序實現代碼,快速排序的算法php實現

function qsort(&$arr){_quick_sort($arr, 0, count($arr) - 1);}/*** 采用遞歸算法的快速排序。** param array $arr 要排序的數組* param int $low 最低的排序子段* param int $high 最高的排序字段*/function _quick_sort(&$arr, $low, $high){$low_data $arr[$low…

08-spring學習-annotation配置

利用annotation配置注入關系 為了更好的解釋此類存在的意義&#xff0c;下面通過一段習慣性的開發進行問題的描述&#xff0c;例如&#xff1a; 現在有一個IAdminService服務層&#xff0c;這個服務層要調用的是IAdminDAO和IRoleDAO兩個數據層操作&#xff0c;于是定義如下&…

JQuery 綁定select標簽的onchange事件

原文出處&#xff1a;http://blog.csdn.net/a5489888/article/details/20045175 使用jqm的change事件 <script src"jquery.min.js" type"text/javascript"></script> <script language"javascript" type"text/javascript&q…

Android 6.0 源代碼編譯實踐

前陣子去上海參加 Android 開發面試&#xff0c;被問及了 Android 的基本原理、常用組件背后的實現機制、設計模式等問題&#xff0c;我都回答地不好。面試時&#xff0c;老司機們常常問我對知識點“背后的實現代碼有沒有看&#xff1f;”。于是我就想著&#xff0c;回來要把 A…

php 鏈接遠程oracle,PHP連接遠程oracle輸出數據

遠程連接的連接字符串可以這樣寫oledbconnection 的連接字符串:providermsdaora;host192.168.1.1;data sourcemytest;user idsystem;passwordxxxprovider msdaora; 指明oledb 的提供者是oracle數據庫host 是遠程 oracle 數據庫所在服務器的ip地址&#xff0c;如果端口不是默認…

RNN介紹,較易懂

人類并不是每時每刻都從一片空白的大腦開始他們的思考。在你閱讀這篇文章時候&#xff0c;你都是基于自己已經擁有的對先前所見詞的理解來推斷當前詞的真實含義。我們不會將所有的東西都全部丟棄&#xff0c;然后用空白的大腦進行思考。我們的思想擁有持久性。 傳統的神經網絡并…

android虛擬機鼠標左鍵拖動會輸入C

不知道什么原因&#xff0c;突然出現這個情況&#xff0c;以為是虛擬機壞了。于是刪了&#xff0c;新建&#xff0c;問題還是存在。 問題原因&#xff1a; 后來發現&#xff0c;原來是今天開了有道詞典&#xff0c;又開啟了詞典的劃詞翻譯。 解決方法&#xff1a; 關閉劃詞翻譯…

php生成圖片水印,PHP生成圖片加文字及圖案水印辦法

工作中&#xff0c;各種語言都要會&#xff0c;但不是各種語言都記到腦子里&#xff0c;常常要查字典、查手冊、以及百度對于PHP生成圖片加文字及圖案水印這項技巧&#xff0c;好久沒有用&#xff0c;又有些生疏了&#xff0c;現在來溫故知新&#xff0c;加深記憶&#xff01;代…

易飛揚宣布完成100G CWDM4PSM4光模塊量產線建設

訊&#xff0c;易飛揚即日宣布量產兩款高性能的100G光模塊&#xff1a;100G QSFP28 CWDM4 和100G QSFP28 PSM4。兩種產品采用同一個技術平臺和生產平臺。本次建設投產的CWDM4/PSM4 車間為萬級無塵恒溫恒濕車間&#xff0c;面積2000平米&#xff0c;配置有3套全自動高精密WIRE B…

滑動切換activity

一、效果 手在屏幕上劃過一段距離&#xff0c;切換頁面。 二、原理 2.1手在屏幕上出發 onTouch事件 2.2在onTouch事件中完成滑動邏輯處理 2.2.1 判斷劃過的x軸距離&#xff0c;如果大于多少&#xff0c;則startActivtiy 2.2.2 判斷劃過的y軸距離&#xff0c;如果大于多少&a…

Redux的全家桶與最佳實踐

2019獨角獸企業重金招聘Python工程師標準>>> image.png Redux 的第一次代碼提交是在 2015 年 5 月底&#xff08;也就是一年多前的樣子&#xff09;&#xff0c;那個時候 React 的最佳實踐還不是明晰&#xff0c;作為一個 View 層&#xff0c;有人會用 backbone 甚至…