注意:您可以使用這個方便的擴充 Markdown PDF 在 VSCode 中輕鬆地將此 Markdown 檔案轉換為 PDF。
運行應用程式程式碼時 CPU 和 GPU 如何協同工作。
統一記憶體架構
GPU 學習資源
電荷、場和電位
電荷與電力(庫侖定律):電荷、場與電位
電場:電荷、場和電位
電位能、電位和電壓:電荷、場和電位
電路
歐姆定律和帶電阻器的電路:電路
帶電容器的電路:電路
磁力、磁場和法拉第定律
磁鐵和磁力:磁力、磁場和法拉第定律
電流產生的磁場:磁力、磁場和法拉第定律
電動馬達:磁力、磁場和法拉第定律
磁通量和法拉第定律
電磁波和乾擾
電磁波簡介:電磁波與幹擾
電磁波幹擾
幾何光學
反射和折射:幾何光學
鏡子:幾何光學
鏡片
線性代數
虛擬化
平行計算
OpenCL 開發
CUDA開發
演算法
機器學習
深度學習開發
電腦視覺開發
賭博
遊戲開發
OpenGL開發
Vulkan開發
DirectX開發
專業音訊/視訊開發
3D 圖形與設計
蘋果矽
核心機器學習開發
金屬開發
MATLAB開發
C/C++開發
Python開發
R開發
茱莉亞發展
回到頂部
圖形處理單元 (GPU) 是由數百個核心組成的電路,可以同時處理數千個執行緒。 GPU 可以快速操作並更改內存,以加速在幀緩衝區中建立影像,以輸出到顯示裝置。它們用於嵌入式系統、行動電話、個人電腦、專業工作站和遊戲機。
隨機存取記憶體 (RAM) 是電腦記憶體的一種形式,可依任何順序讀取和更改,通常用於儲存工作資料和機器碼。與其他直接存取資料儲存媒體相比,隨機存取記憶體裝置允許在幾乎相同的時間內讀取或寫入資料項,而不管資料在記憶體內的實體位置為何。
視訊隨機存取記憶體 (VRAM) 是分配用於儲存影像或圖形相關資料的 RAM。它的功能與 RAM 相同,儲存特定資料以便於存取和提高效能。影像資料首先由處理器讀取並寫入 VRAM 上。然後由 RAMDAC 或 RAM 數位類比轉換器進行轉換並顯示為圖形輸出。
圖形雙倍資料速率 (GDDR) SDRAM 是一種同步圖形隨機存取記憶體 (SGRAM),具有高頻寬(「雙倍資料速率」)接口,設計用於顯示卡、遊戲機和高效能運算。
整合式圖形處理單元 (IGPU) 是與 CPU(AMD Ryzen APU 或 Intel HD Graphics)建構在同一晶片(積體電路)上的元件,它利用電腦系統 RAM 的一部分而不是專用圖形記憶體。
張量是代數對象,描述與向量空間相關的代數對象集合之間的多線性關係。
張量是具有統一類型(稱為 dtype)的多維數組。
Tensor Core 是 NVIDIA GPU 中的 AI 推理加速器,可提供數量級更高的效能並降低精度,例如 TF32、bfloat16、FP16、INT8、INT4 和 FP64,以所需的最高精度加速科學運算。
RT(即時光線追蹤)Cores 是一種基於硬體的光線追蹤加速,加速邊界體積層次(BVH)遍歷和光線/三角形相交測試(光線投射)功能。 RT 核心代表 SM 中執行的執行緒執行可見性測試,使其能夠處理另一個頂點、像素和運算著色工作。
中央處理單元 (CPU) 是由多個核心組成的電路,用於執行包含電腦程式的指令。 CPU 執行程式中指令指定的基本算術、邏輯、控制和輸入/輸出 (I/O) 操作。這與其他外部元件(例如主記憶體、I/O 電路和圖形處理單元 (GPU))不同。
AMD 加速處理單元 (APU) 來自 Advanced Micro Devices (AMD) 的一系列 64 位元微處理器,設計用於在單一晶片上充當中央處理單元 (CPU) 和圖形處理單元 (GPU)。
向量處理器是一種中央處理單元 (CPU),它實現指令集,其指令設計用於高效且有效地對稱為向量的大型一維資料數組進行操作。
數位訊號處理 (DSP) 是數位電腦修改類比或數位訊號的應用。它廣泛用於許多應用,包括視訊/音訊/數據通訊和網路、醫學成像和電腦視覺、語音合成和編碼、數位音訊和視訊以及複雜系統和工業過程的控制。
影像訊號處理 (ISP) 是透過使用專用類型的媒體處理器執行降噪、自動曝光、自動對焦、自動白平衡、HDR 校正和影像銳利化等操作,將影像轉換為數位形式的過程。
專用積體電路 (ASIC) 是專為嵌入式系統、行動電話、個人電腦、專業工作站中的特定用途而客製化的積體電路 (IC) 晶片,而不是一般用途。
單指令多資料 (SIMD) 是一種平行處理類型,它描述了具有多個處理元件的計算機,這些處理元件可以同時對多個資料點執行相同的操作。
什麼是 GPU?圖形處理單元的定義 |英特爾
深度學習學院和培訓解決方案|英偉達
深度學習線上課程 |英偉達
現有大學課程|英偉達開發商
使用 GPU 擴充和加速深度學習 | edX
頂級 GPU 線上課程 | Coursera
CUDA GPU 程式設計初級到高級 |烏德米
Vulkan 中的 GPU 運算 |烏德米
GPU 架構課程 |華盛頓大學
回到頂部
- Charge and electric force (Coulomb's law): Electric charge, field, and potential - Electric field: Electric charge, field, and potential - Electric potential energy, electric potential, and voltage: Electric charge, field, and potential
電位能。來源:sparkfun
回到頂部
- Ohm's law and circuits with resistors: Circuits - Circuits with capacitors: Circuits
電路。資料來源:聖迭戈州立大學物理學
電路符號。
回到頂部
- Magnets and Magnetic Force: Magnetic forces, magnetic fields, and Faraday's law - Magnetic field created by a current: Magnetic forces, magnetic fields, and Faraday's law - Electric motors: Magnetic forces, magnetic fields, and Faraday's law - Magnetic flux and Faraday's law
磁場。來源:vecteezy
安菲定律。資料來源:聖迭戈州立大學物理學
法拉第定律。資料來源:聖迭戈州立大學物理學
回到頂部
- Introduction to electromagnetic waves: Electromagnetic waves and interference - Interference of electromagnetic waves
電磁波。來源:差異
EMI 頻譜。來源:electric4u
回到頂部
- Reflection and refraction: Geometric optics - Mirrors: Geometric optics - Lenses
幾何光學 - 光線追蹤。資料來源:聖迭戈州立大學物理學
幾何光學 - 反射。資料來源:聖迭戈州立大學物理學
回到頂部
線性代數是向量和矩陣的數學。本指南的唯一先決條件是對高中數學概念有基本的了解,例如數字、變數、方程式以及實數的基本算術運算:加法(表示為 +)、減法(表示為 -)、乘法(隱式表示)和除法(分數)。此外,您還應該熟悉以實數作為輸入並給出實數作為輸出的函數,f : R → R。
線性代數- 線上課程|哈佛大學
線性代數 |麻省理工學院開放學習圖書館
線性代數 - 可汗學院
Coursera 上的頂級線性代數課程
機器學習數學:Coursera 上的線性代數
Udemy 上的頂級線性代數課程
透過線上課程和 edX 課程學習線性代數
數據科學數學:edX 上的線性代數課程
線性代數二十五講|加州大學戴維斯分校
線性代數 |加州大學聖地牙哥分校擴展
機器學習的線性代數 |加州大學聖地牙哥分校擴展
線性代數簡介,互動線上影片 |鎢
線性代數資源 |達特茅斯
我們現在定義向量的數學運算。我們可以對向量 ~u = (u1, u2, u3) 和 ~v = (v1, v2, v3) 執行的運算有:加法、減法、縮放、範數(長度)、點積和叉積:
兩個向量的點積和叉積也可以用兩個向量之間的角 θ 來描述。
向量運算。資料來源:幻燈片服務
向量運算。來源:pinterest
我們用 A 表示整個矩陣,並將其條目稱為 aij 。
• 行列式(表示為det(A) 或|A|) 請注意,矩陣乘積不是交換運算。
矩陣運算。資料來源:聖地牙哥州立大學物理系
檢查允許矩陣運算的模組。資料來源:DPS 概念
矩陣向量積是矩陣積的重要特例。
有兩種根本不同但等效的方法來解釋矩陣向量積。在列圖 (C) 中,矩陣 A 與向量 ~x 相乘產生矩陣列的線性組合: y = A x = x1A[:,1] + x2A[:,2],其中A[:,1] 和A[:,2] 是矩陣A 的第一列與第二列。的點積。
矩陣向量積。來源:維基媒體
矩陣向量積。資料來源:mathisfun
矩陣向量積用於定義線性變換的概念,這是線性代數研究的關鍵概念之一。乘以矩陣 A ∈ R m×n 可以被認為是計算一個線性變換 TA,它以 n 個向量作為輸入並產生 m 個向量作為輸出:
線性變換。資料來源:幻燈片服務
R^2 中線性變換的初等矩陣。來源:Quora
向量空間線性代數基本定理。來源:維基媒體
線性代數基本定理。來源:鎢
線性方程組的繪圖。資料來源:幻燈片分享
方程組作為矩陣方程式。資料來源:mathisfun
在本節中,我們將介紹計算矩陣逆的幾種不同方法。矩陣逆是唯一的,因此無論我們用哪一種方法求逆,我們總是會得到相同的答案。
2x2 矩陣的逆矩陣。來源:pinterest
計算倒數的一種方法是使用高斯-約當消元法。
Elementray 行操作。來源:YouTube
我們對矩陣執行的每一次行運算都相當於與初等矩陣的左乘。
初等矩陣。資料來源:聖地牙哥州立大學物理系
求矩陣的逆矩陣就是使用Transpose方法。
矩陣的轉置。資料來源:幻燈片服務
在本節中討論線性代數的許多其他重要主題。
直觀上,基底是可以用作向量空間座標系的任何向量集。您當然熟悉由兩個正交軸(x 軸和 y 軸)組成的 xy 平面的標準基礎。
基礎。來源:維基媒體
基礎的改變。來源:維基媒體
線性變換的矩陣表示。資料來源:幻燈片服務
向量空間的維數定義為此向量空間的基底中向量的數量。考慮下列向量空間 S = span{(1, 0, 0),(0, 1, 0),(1, 1, 0)}。看到空間是由三個向量描述的,我們可能會認為 S 是 3 維的。然而,情況並非如此,因為這三個向量不是線性獨立的,因此它們不構成 S 的基礎。我們可以寫成S = span{(1, 0, 0),(0, 1, 0)},我們看到這兩個向量是線性無關的,因此它們形成一個基底並且dim(S) = 2。一個通用的尋找向量空間基底的過程。假設您以 m 個向量 V = span{~v1, ~v2,... 的形式描述了向量空間。 。 。 , ~vm} 並且要求您找到 V 的基底和 V 的維數。將向量 ~vi 寫成矩陣 M 的行。 ,矩陣M的簡化行梯形形式的行空間與原始向量集的行空間相同。矩陣 RREF 中的非零行構成向量空間 V 的基礎,非零行的數量是 V 的維度。
基礎和維度。資料來源:滑桿服務
回想一下我們在第 II-E 節中定義的矩陣的基本向量空間:列空間 C(A)、零空間 N (A) 和行空間 R(A)。標準的線性代數考試問題是給你一個特定的矩陣 A,並要求你找到它的每個基本空間的維度和基礎。在上一節中,我們描述了基於高斯約當消去法的過程,該過程可用於「提取」一組線性獨立向量,這些向量構成行空間 R(A) 的基礎。現在,我們將透過一個範例來說明此過程,並展示如何使用矩陣 A 的 RREF 來尋找 C(A) 和 N (A) 的基數。
行空間和列空間。資料來源:幻燈片分享
行空間和列空間。資料來源:幻燈片分享
等級和無效。資料來源:幻燈片分享
可逆矩陣和未依下列定理形式化的矩陣之間有重要差異。定理。對於 n×n 矩陣 A,以下語句是等效的:
可逆矩陣定理。資料來源:聖地牙哥州立大學物理系
矩陣的行列式表示為 det(A) 或 |A|,是一種組合矩陣項的特殊方法,用於檢查矩陣是否可逆。
方陣的行列式。來源:stackexchange
矩陣的行列式。資料來源:線上數學學習
矩陣的特徵向量集是一組特殊的輸入向量,矩陣的作用被描述為簡單的縮放。當矩陣乘以其特徵向量之一時,輸出是相同的特徵向量乘以常數 A eλ = λ eλ。常數 λ 稱為 A 的特徵值。
廣義特徵向量。來源:YouTube
線性迴歸是一種透過將線性方程式擬合到觀測資料來對兩個變數之間的關係進行建模的方法。一個變數被視為解釋變量,另一個變數被視為因變數。
多元線性迴歸。來源:Medium
回到頂部
HVM(硬體虛擬機)是一種虛擬化類型,它提供了無需任何修改即可直接在虛擬機器之上運行作業系統的能力,就像在裸機硬體上運行一樣。
PV(ParaVirtualization)是Xen專案團隊推出的高效、輕量的虛擬化技術,後來被其他虛擬化解決方案所採用。 PV 不需要主機 CPU 的虛擬化擴展,因此可以在不支援硬體輔助虛擬化的硬體架構上實現虛擬化。
網路功能虛擬化 (NFV) 是用虛擬機器取代網路設備硬體。虛擬機器使用虛擬機器管理程式來運行網路軟體和進程,例如路由和負載平衡。 NFV 允許將通訊服務與路由器和防火牆等專用硬體分離。這種分離意味著網路運營可以動態地提供新服務,而無需安裝新硬體。與傳統網路解決方案相比,部署具有網路功能虛擬化的網路元件只需數小時,而需要數月時間。
軟體定義網路 (SDN) 是一種網路方法,它使用基於軟體的控制器或應用程式介面 (API) 與底層硬體基礎設施進行通訊並引導網路上的流量。此模型與傳統網路不同,傳統網路使用專用硬體設備(路由器和交換器)來控製網路流量。
虛擬化基礎架構管理器(VIM) 是一種服務交付,透過高效能生命週期管理降低成本。和分配計劃。
管理和編排 (MANO) 是 ETSI 主辦的一項計劃,旨在開發與 ETSI NFV 一致的開源 NFV 管理和編排 (MANO) 軟體堆疊。 ETSI NFV 架構框架的兩個關鍵元件是 NFV Orchestrator 和 VNF Manager(稱為 NFV MANO)。
Magma是一個開源軟體平台,為網路營運商提供開放、靈活且可擴展的行動核心網路解決方案。他們的使命是透過使服務提供者能夠建立經濟高效且可擴展的營運商級網絡,將世界連接到更快的網路。 Magma 是 3GPP 世代(2G、3G、4G 或即將推出的 5G 網路)且與存取網路無關(蜂窩或 WiFi)。它可以以最少的開發和部署工作靈活地支援無線存取網路。
OpenRAN 是一種整合在通用平台上的智慧無線存取網路 (RAN),在軟體定義功能之間具有開放介面。開放 RANecosystem 實現了巨大的靈活性和互通性,並對多供應商部署完全開放。
Open vSwitch(OVS) 是一款開源生產品質的多層虛擬交換機,根據開源 Apache 2.0 授權授權。它旨在透過程式擴展實現大規模網路自動化,同時仍支援標準管理介面和協定(NetFlow、sFlow、IPFIX、RSPAN、CLI、LACP、802.1ag)。
Edge 是一種分散式運算框架,使企業應用程式更接近物聯網設備或本地邊緣伺服器等資料來源。這種接近資料來源的方式可以帶來強大的業務優勢,包括更快的洞察、改進的回應時間和更好的頻寬可用性。
多接入邊緣運算(MEC) 是ETSI 內的一個行業規範組(ISG),旨在創建一個標準化、開放的環境,從而允許跨多供應商、服務提供者和第三方高效、無縫地整合應用程式-訪問邊緣運算平台。
虛擬化網路功能 (VNF) 是一種用於網路功能虛擬化 (NFV) 實現的軟體應用程序,具有明確定義的接口,並以定義的方式提供一個或多個組件網路功能。例如,安全VNF提供網路位址轉換(NAT)和防火牆元件功能。
雲端原生網路功能(CNF)是一種設計和實現為在容器內運行的網路功能。 CNF 繼承了所有雲端原生架構和操作原則,包括 Kubernetes(K8s) 生命週期管理、敏捷性、彈性和可觀察性。
實體網路功能(PNF)是未經虛擬化的實體網路節點。 PNF和VNF(虛擬化網路功能)都可以用來形成整體網路服務。
網路功能虛擬化基礎架構(NFVI)是整個NFV架構的基礎。它提供託管 VNF 的實體運算、儲存和網路硬體。每個 NFVI 區塊都可以被視為一個 NFVI 節點,並且可以在地理上部署和控制許多節點。
基於虛擬化的安全性 (VBS) 是一種硬體虛擬化功能,用於建立安全的記憶體區域並將其與正常作業系統隔離。
虛擬機器管理程式強製程式碼完整性 (HVCI) 是一種機制,虛擬機器管理程式(例如 Hyper-V)使用硬體虛擬化來保護核心模式進程免遭惡意或未經驗證的程式碼的注入和執行。程式碼完整性驗證是在安全的環境中執行的,可以抵抗惡意軟體的攻擊,核心模式的頁面權限由虛擬機器管理程式設定和維護。
KVM(基於核心的虛擬機器)是 x86 硬體上 Linux 的完整虛擬化解決方案,包含虛擬化擴充(Intel VT 或 AMD-V)。它由提供核心虛擬化基礎架構的可載入核心模組 kvm.ko 和處理器特定模組 kvm-intel.ko 或 kvm-amd.ko 組成。
QEMU 是一個使用便攜式動態轉換器的快速處理器模擬器。 QEMU 模擬完整的系統,包括處理器和各種週邊。它可用於啟動不同的作業系統而無需重新啟動 PC 或偵錯系統程式碼。
Hyper-V 支援在實體主機上執行虛擬化電腦系統。這些虛擬化系統可以像實體電腦系統一樣使用和管理,但它們存在於虛擬化和隔離的環境中。稱為虛擬機器管理程式的特殊軟體管理虛擬系統和實體硬體資源之間的存取。虛擬化可以實現電腦系統的快速部署、將系統快速恢復到先前已知的良好狀態的方法以及在實體主機之間遷移系統的能力。
VirtManager 是一個透過 libvirt 管理虛擬機器的圖形化工具。大多數用途是使用 QEMU/KVM 虛擬機,但 Xen 和 libvirt LXC 容器也得到很好的支援。任何 libvirt 驅動程式的通用操作都應該有效。
oVirt 是一種開源分散式虛擬化解決方案,旨在管理整個企業基礎架構。 oVirt 使用值得信賴的KVM 虛擬機管理程序,並基於其他幾個社區項目構建,包括libvirt、Gluster、PatternFly 和Ansible。管理虛擬機器、運算、儲存和網路資源,來自易於使用的基於 Web 的前端,具有獨立於平台的存取權限。
HyperKit 是一個用於在應用程式中嵌入虛擬機器管理程式功能的工具包。它包括一個基於 xhyve/bhyve 的完整虛擬機器管理程序,針對輕量級虛擬機器和容器部署進行了最佳化。它旨在與 VPNKit 和 DataKit 等更高級別的元件連接。 HyperKit 目前僅支援使用 Hypervisor.framework 的 macOS,這使其成為 Docker Desktop for Mac 的核心元件。
英特爾® 圖形虛擬化技術(Intel® GVT)是一種具有中介直通功能的完整GPU 虛擬化解決方案,從採用英特爾處理器顯示卡(Broadwell 及更新版本)的第四代英特爾酷睿(TM) 處理器開始。它可用於為多個來賓虛擬機器虛擬化 GPU,有效地在虛擬機器中提供接近本機的圖形效能,同時仍讓您的主機正常使用虛擬化 GPU。
Apple Hypervisor 是一個在輕量級虛擬機器管理程式之上建立虛擬化解決方案的框架,無需第三方核心擴充。 Hypervisor 提供 C API,因此您可以與使用者空間中的虛擬化技術進行交互,而無需編寫核心擴充 (KEXT)。因此,您使用此框架建立的應用程式適合在 Mac App Store 上分發。
Apple 虛擬化框架是一個提供高級 API 的框架,用於在 Apple 晶片和基於 Intel 的 Mac 電腦上建立和管理虛擬機器。該框架用於在您定義的自訂環境中啟動和運行基於 Linux 的作業系統。它還支援 Virtio 規範,該規範定義了許多設備類型的標準接口,包括網路、套接字、串行端口、存儲、熵和內存氣球設備。
Apple 半虛擬化圖形框架是一個為在虛擬機器(以下稱為虛擬機器)中運行的 macOS 實現硬體加速圖形的框架。作業系統提供在來賓內部運行的圖形驅動程序,與主機作業系統中的框架進行通信,以利用 Metal 加速圖形。
Cloud Hypervisor 是一個運作在 KVM 之上的開源虛擬機器監視器 (VMM)。該專案專注於在一組有限的硬體架構和平台上專門運行現代雲端工作負載。雲端工作負載是指通常由客戶在雲端提供者內運行的工作負載。 Cloud Hypervisor 使用 Rust 實現,並且基於 rust-vmm crate。
VMware vSphere Hypervisor 是一個裸機管理程序,可虛擬化伺服器;讓您可以整合您的應用程序,同時節省管理 IT 基礎架構的時間和金錢。
Xen 專注於在許多不同的商業和開源應用程式中推進虛擬化,包括伺服器虛擬化、基礎設施即服務 (IaaS)、桌面虛擬化、安全應用程式、嵌入式和硬體設備以及汽車/航空。
Ganeti 是一個虛擬機器叢集管理工具,建構在現有虛擬化技術(例如 Xen 或 KVM 和其他開源軟體)之上。安裝後,該工具將負責虛擬執行個體 (Xen DomU) 的管理。
Packer 是一個開源工具,用於從單一來源配置為多個平台建立相同的機器映像。 Packer 是輕量級的,可以在每個主要作業系統上運行,並且效能很高,可以並行地為多個平台建立機器映像。 Packer 不會取代 Chef 或 Puppet 等設定管理。事實上,在建置映像檔時,Packer 可以使用 Chef 或 Puppet 等工具將軟體安裝到映像上。
Vagrant 是一個用於在單一工作流程中建置和管理虛擬機器環境的工具。憑藉著易於使用的工作流程和對自動化的關注,Vagrant 縮短了開發環境設定時間,提高了生產平價性,並使「在我的機器上工作」的藉口成為過去。它提供了易於配置、可重複和便攜式的工作環境,建立在行業標準技術之上,並由單一一致的工作流程控制,以幫助最大限度地提高您和您的團隊的生產力和靈活性。
Parallels Desktop 是一款桌面管理程序,它提供了在 Mac(包括新的 Apple M1 晶片)和 ChromeOS 上運行 Windows/Linux 的最快、最簡單和最強大的應用程式。
VMware Fusion 是一款桌面虛擬機器管理程序,可為 Mac 上的開發人員和 IT 專業人員提供桌面和「伺服器」虛擬機器、容器和 Kubernetes 叢集。
VMware Workstation 是一個託管虛擬機器管理程序,可在 x64 版本的 Windows 和 Linux 作業系統上運行;它使用戶能夠在單一實體機上設定虛擬機,並與實際機器同時使用它們。
回到頂部
平行運算是一種運算環境,其中兩個或多個處理器(核心、電腦)同時運作以解決單一問題。大問題往往可以分解為小問題,然後同時解決。平行計算有幾種不同形式:[位元級]https://en.wikipedia.org/wiki/Bit-level_parallelism)、指令級、資料和任務並行。
加速計算- 培訓|英偉達開發商
CUDA 加速運算基礎 Python 課程 |英偉達
頂級並行計算線上課程 | Coursera
頂級並行計算線上課程 |烏德米
科學計算大師班:平行與分散式
學習 Python 中的平行計算 |烏德米
Vulkan 中的 GPU 運算 |烏德米
高效能運算課程|優達學城
平行計算課程|史丹佛在線
平行計算|麻省理工學院開放課件
多執行緒並行:語言與編譯器 |麻省理工學院開放課件
使用 CUDA 進行平行計算 |多元視野
HPC 架構與系統設計 |英特爾
MATLAB Parallel Server™ 是一款工具,可讓您將 MATLAB® 程式和 Simulink® 模擬擴展到叢集和雲端。您可以在桌面上對程式和模擬進行原型設計,然後在叢集和雲端上運行它們,而無需重新編碼。 MATLAB Parallel Server 支援批次作業、互動式平行計算和大型矩陣的分散式計算。
ParallelComputingToolbox™ 是一款可讓您使用多核心處理器、GPU 和電腦叢集解決運算和資料密集問題的工具。並行 for 循環、特殊數組類型和並行數值演算法等高級構造使您無需 CUDA 或 MPI 編程即可並行化 MATLAB® 應用程式。此工具箱可讓您在 MATLAB 和其他工具箱中使用支援並行的函數。您可以使用此工具箱與 Simulink® 並行運行模型的多個模擬。程式和模型可以在互動模式和批次模式下運行。
Statistics and Machine Learning Toolbox™ 是一款提供用於描述、分析和建模資料的功能和應用程式的工具。您可以使用描述性統計、視覺化和聚類進行探索性資料分析;將機率分佈擬合到數據;產生蒙特卡羅模擬的隨機數,並執行假設檢定。回歸和分類演算法可讓您使用分類和回歸學習器應用程式以互動方式或使用 AutoML 以程式設計方式從資料中得出推論並建立預測模型。
OpenMP 是一個支援 C/C++ 和 Fortran 多平台共享記憶體平行程式設計的 API。 OpenMP API 定義了一個可移植、可擴展的模型,具有簡單而靈活的接口,用於在從桌面到超級電腦的平台上開發並行應用程式。
CUDA® 是 NVIDIA 開發的平行運算平台和程式設計模型,用於圖形處理單元 (GPU) 上的通用運算。借助 CUDA,開發人員能夠利用 GPU 的強大功能來顯著加快計算應用程式的速度。
訊息傳遞介面 (MPI) 是一種標準化且可移植的訊息傳遞標準,旨在在平行運算架構上執行。
Microsoft MPI (MS-MPI) 是訊息傳遞介面標準的 Microsoft 實現,用於在 Windows 平台上開發和執行平行應用程式。
Slurm 是一款免費的開源工作負載管理器,專為滿足高效能運算的嚴苛需求而設計。
便攜式批次系統 (PBS) Pro 是一款快速、強大的工作負載管理器,旨在提高生產力、優化利用率和效率,並簡化叢集、雲端和超級電腦的管理。
AWS ParallelCluster 是 AWS 支援的開源叢集管理工具,可讓您輕鬆在 AWS 上部署和管理高效能運算 (HPC) 叢集。 ParallelCluster 使用簡單的文字檔案以自動化、安全的方式建模和配置 HPC 應用程式所需的所有資源。
Numba 是一個開源的、支援 NumPy 的 Python 最佳化編譯器,由 Anaconda, Inc. 贊助。 Numba 可以編譯大量以數位為中心的 Python 子集,包括許多 NumPy 函數。此外,Numba 支援循環的自動並行化、GPU 加速程式碼的產生以及 ufunc 和 C 回呼的建立。
Chainer 是一個基於 Python 的深度學習框架,旨在實現靈活性。它提供基於運行定義方法(動態計算圖)的自動微分 API 以及物件導向的高級 API 來建立和訓練神經網路。它還支援使用 CuPy 的 CUDA/cuDNN 進行高效能訓練和推理。
XGBoost 是一個最佳化的分散式梯度提升函式庫,旨在高效、靈活和便攜。它在 Gradient Boosting 框架下實作機器學習演算法。 XGBoost 提供了平行樹提升(也稱為 GBDT、GBM),可以快速準確地解決許多資料科學問題。它支援多台機器上的分散式訓練,包括AWS、GCE、Azure和Yarn叢集。它還可以與Flink、Spark等雲端資料流系統整合。
cuML 是一套函式庫,用於實作機器學習演算法和數學原語函數,與其他 RAPIDS 專案共用相容的 API。 cuML 讓資料科學家、研究人員和軟體工程師能夠在 GPU 上執行傳統的表格 ML 任務,而無需深入了解 CUDA 程式設計的細節。在大多數情況下,cuML 的 Python API 與 scikit-learn 的 API 相符。
Apache Cassandra™ 是一種開源 NoSQL 分散式資料庫,可在不影響效能的情況下具有可擴展性和高可用性,受到數千家公司的信賴。 Cassandra 在商用硬體或雲端基礎架構上提供線性可擴展性和經過驗證的容錯能力,使其成為關鍵任務資料的完美平台。
Apache Flume 是一種分散式、可靠且可用的服務,用於高效收集、聚合和移動大量流事件資料。
Apache Mesos 是一個叢集管理器,可跨分散式應用程式或框架提供高效的資源隔離和共用。它可以在動態共享節點池上運行 Hadoop、Jenkins、Spark、Aurora 和其他框架。
Apache HBase™ 是一種開源、NoSQL、分散式大數據儲存。它可以實現對 PB 級資料的隨機、嚴格一致、即時存取。 HBase 對於處理大型稀疏資料集非常有效。 HBase 可作為 Hadoop 的 Apache MapReduce 框架的直接輸入和輸出,並與 Apache Phoenix 配合使用,以實現對 HBase 表的類似 SQL 的查詢。
Hadoop 分散式檔案系統 (HDFS) 是一種分散式檔案系統,可處理在商用硬體上執行的大型資料集。它用於將單一 Apache Hadoop 叢集擴展到數百(甚至數千)個節點。 HDFS 是 Apache Hadoop 的主要元件之一,其他元件是 MapReduce 和 YARN。
Apache Arrow 是一種獨立於語言的列式記憶體格式,適用於平面和分層數據,其組織方式是為了在 CPU 和 GPU 等現代硬體上進行高效的分析操作。
Apache Spark™ 是用於大規模資料處理的統一分析引擎。它提供了 Scala、Java、Python 和 R 中的高級 API,以及支援用於資料分析的通用計算圖的最佳化引擎。它還支援一組豐富的高級工具,包括用於 SQL 和 DataFrames 的 Spark SQL、用於機器學習的 MLlib、用於圖形處理的 GraphX 以及用於流處理的 Structured Streaming。
Apache PredictionIO 是一個面向開發人員、資料科學家和最終用戶的開源機器學習框架。它支援事件收集、演算法部署、評估、透過 REST API 查詢預測結果。它基於 Hadoop、HBase(和其他資料庫)、Elasticsearch、Spark 等可擴展的開源服務,並實現了所謂的 Lambda 架構。
Microsoft Project Bonsai 是一個低程式碼 AI 平台,可加速 AI 驅動的自動化開發,是 Microsoft 自治系統套件的一部分。 Bonsai 用於建立 AI 組件,可為操作員提供指導或做出獨立決策,以優化流程變數、提高生產效率並減少停機時間。
Cluster Manager for Apache Kafka(CMAK)是用來管理 Apache Kafka 叢集的工具。
BigDL 是 Apache Spark 的分散式深度學習函式庫。借助 BigDL,使用者可以將深度學習應用程式編寫為標準 Spark 程序,這些程式可以直接在現有 Spark 或 Hadoop 叢集之上運行。
Apache Cassandra™ 是一種開源 NoSQL 分散式資料庫,可在不影響效能的情況下具有可擴展性和高可用性,受到數千家公司的信賴。 Cassandra 在商用硬體或雲端基礎架構上提供線性可擴展性和經過驗證的容錯能力,使其成為關鍵任務資料的完美平台。
Apache Flume 是一種分散式、可靠且可用的服務,用於高效收集、聚合和移動大量流事件資料。
Apache Mesos 是一個叢集管理器,可跨分散式應用程式或框架提供高效的資源隔離和共用。它可以在動態共享節點池上運行 Hadoop、Jenkins、Spark、Aurora 和其他框架。
Apache Beam 是一個開源的統一模型和一組特定語言的 SDK,用於定義和執行資料處理工作流程以及資料攝取和整合流程,支援企業整合模式 (EIP) 和領域特定語言 (DSL)。
Jupyter Notebook 是一款開源 Web 應用程序,可讓您建立和分享包含即時程式碼、方程式、視覺化和敘述文字的文件。 Jupyter 廣泛應用於資料清理和轉換、數值模擬、統計建模、資料視覺化、資料科學和機器學習等產業。
Neo4j 是唯一一個企業級圖形資料庫,它結合了本機圖形儲存、進階安全性、可擴展的速度最佳化架構和 ACID 合規性,以確保基於關係的查詢的可預測性和完整性。
ElasticSearch是一個基於Lucene函式庫的搜尋引擎。它提供了一個分散式、支援多租戶的全文搜尋引擎,具有 HTTP Web 介面和無模式 JSON 文件。 Elasticsearch 是用 Java 開發的。
Logstash 是一個用來管理事件和日誌的工具。一般使用時,該術語涵蓋更大的日誌收集、處理、儲存和搜尋活動系統。
Kibana 是 Elasticsearch 的開源資料視覺化插件。它在 Elasticsearch 叢集上索引的內容之上提供視覺化功能。使用者可以在大量資料的基礎上建立長條圖、折線圖和散佈圖,或是餅圖和地圖。
Trino 是一個用於大數據的分散式 SQL 查詢引擎。它能夠大幅加速 ETL 過程,允許它們都使用標準 SQL 語句,並在同一系統中處理大量資料來源和目標。
提取、轉換和載入 (ETL) 是一種數據管道,用於從各種來源收集數據,根據業務規則轉換數據,並將其載入到目標數據儲存中。
Redis(遠端字典伺服器)是一個開源(BSD 許可)、記憶體中資料結構存儲,用作資料庫、快取和訊息代理。它提供了資料結構,例如字串、雜湊、列表、集合、帶有範圍查詢的排序集、位圖、超級日誌、地理空間索引和流。
Apache OpenNLP 是一個開源程式庫,用於基於機器學習的工具包,用於處理自然語言文字。它具有適用於命名實體識別、句子檢測、POS(詞性)標記、標記化特徵提取、分塊、解析和共指解析等用例的 API。
Apache Airflow 是一個由社群創建的開源工作流程管理平台,用於以程式設計方式編寫、安排和監控工作流程。安裝。原則。可擴展。 Airflow 具有模組化架構,並使用訊息佇列來編排任意數量的工作人員。氣流已準備好擴展到無限大。
開放神經網路交換 (ONNX) 是一個開放的生態系統,使人工智慧開發人員能夠隨著專案的發展選擇正確的工具。 ONNX 為人工智慧模型(深度學習和傳統機器學習)提供開源格式。它定義了可擴展的計算圖模型,以及內建運算子和標準資料類型的定義。
Apache MXNet 是一個專為提高效率和靈活性而設計的深度學習框架。它允許您混合符號和命令式編程,以最大限度地提高效率和生產力。 MXNet 的核心包含一個動態依賴調度程序,可以動態自動並行化符號操作和命令操作。其之上的圖形優化層使符號執行快速且記憶體高效。 MXNet 便攜且輕量級,可有效擴展到多個 GPU 和多台機器。支援 Python、R、Julia、Scala、Go、Javascript 等。
AutoGluon 是深度學習工具包,可自動執行機器學習任務,讓您在應用程式中輕鬆實現強大的預測效能。只需幾行程式碼,您就可以在表格、圖像和文字資料上訓練和部署高精度深度學習模型。
回到頂部
開放運算語言 (OpenCL) 是異質平台並行程式設計的開放標準,該平台由 CPU、GPU 以及超級電腦、雲端伺服器、個人電腦、行動裝置和嵌入式平台中的其他硬體加速器組成。
OpenCL | GitHub
科諾斯集團 | GitHub
Khronos 技術課程與培訓
OpenCL 教學 - StreamHPC
英特爾® OpenCL 工具簡介
OpenCL |英偉達開發商
FPGA 上的 OpenCL 簡介課程 | Coursera
將 OpenCL 核心編譯到 FPGA 課程 | Coursera
RenderDoc 是一款獨立的圖形調試器,允許在 Windows、Linux、Android、Stadia 或 Nintendo Switch™ 上使用 Vulkan、D3D11、OpenGL 和 OpenGL ES 或 D3D12 快速輕鬆地進行單幀捕獲和詳細內省任何應用程式。
GPUVerify 是一個用於對以 OpenCL 和 CUDA 編寫的 GPU 核心進行形式化分析的工具。該工具可以證明核心不存在某些類型的缺陷,包括資料競爭。
OpenCL ICD 載入器是一種可安裝客戶端驅動程式(ICD) 機制,可讓開發人員針對可安裝客戶端驅動程式載入器(ICD 載入器)建置應用程序,而不是將其應用程式連結到特定的OpenCL實現。
clBLAS 是一個軟體函式庫,包含用 OpenCL 寫的 BLAS 函數。
clFFT 是一個包含用 OpenCL 編寫的 FFT 函數的軟體庫。
clSPARSE 是一個包含用 OpenCL 編寫的稀疏函數的軟體庫。
clRNG 是一個基於 OpenCL 的軟體函式庫,包含隨機數產生函數。
CLsmith 是一個利用兩種現有測試技術(隨機差分測試和等效模輸入 (EMI))的工具,並將它們應用在多核心環境 OpenCL 中。其主要功能是產生隨機 OpenCL 內核,從而運用該語言的許多功能。它還帶來了透過死程式碼注入應用 EMI 的新穎想法。
Oclgrind 是一個虛擬 OpenCL 設備模擬器,包括支援 ICD 的 OpenCL 運行時。目標是提供一個平台來創建工具來幫助 OpenCL 開發。特別是,該專案目前實現了用於調試記憶體存取錯誤、檢測資料爭用和屏障分歧、收集指令直方圖以及互動式 OpenCL 核心偵錯的實用程式。該模擬器是在 LLVM IR 解釋器上建構的。
NVIDIA® Nsight™ Visual Studio Edition 是一個適用於異質平台的應用程式開發環境,它將 GPU 運算引入 Microsoft Visual Studio。 NVIDIA Nsight™ VSE 可讓您建立和偵錯整合 GPU 核心和本機 CPU 程式碼,以及檢查 GPU 和記憶體的狀態。
Radeon™ GPU Profiler 是一款效能工具,開發人員可以使用它來優化 AMD RDNA™ 和 GCN 硬體的 DirectX®12、Vulkan® 和 OpenCL™ 應用程式。
Radeon™ GPU 分析器是適用於 Vulkan®、DirectX®、OpenGL® 和 OpenCL™ 的編譯器和程式碼分析工具。
AMD Radeon ProRender 是一款功能強大的基於實體的渲染引擎,使創意專業人士能夠在十多個領先的數位內容創建和CAD 應用程式中的幾乎任何GPU、任何CPU 和任何作業系統上生成令人驚嘆的逼真圖像。
NVIDIA Omniverse 是一個強大的多 GPU 即時模擬和協作平台,適用於基於 Pixar 通用場景描述和 NVIDIA RTX 的 3D 製作流程。
適用於 OpenCL™ 應用的英特爾® SDK 是一種卸載運算密集型工作負載的工具。客製化異質計算應用程式並透過基於核心的程式設計來提高效能。
NVIDIA NGC 是針對深度學習、機器學習和高效能運算 (HPC) 工作負載的 GPU 最佳化軟體的中心。
NVIDIA NGC Containers 是一個註冊表,讓研究人員、資料科學家和開發人員能夠輕鬆存取用於 AI、機器學習和 HPC 的 GPU 加速軟體的綜合目錄。這些容器充分利用本機和雲端中的 NVIDIA GPU。
NVIDIA cuDNN 是 GPU 加速的深度神經網路基元庫。 cuDNN 為標準例程(例如前向和後向卷積、池化、歸一化和激活層)提供高度調整的實現。 cuDNN 可加速廣泛使用的深度學習框架,包括 Caffe2、Chainer、Keras、MATLAB、MxNet、PyTorch 和 TensorFlow。
NVIDIA Container Toolkit 是一個工具和函式庫的集合,允許使用者建置和運行 GPU 加速的 Docker 容器。該工具包包括一個容器運行時庫和實用程序,用於自動配置容器以利用 NVIDIA GPU。
回到頂部
CUDA 工具包。資料來源:NVIDIA 開發人員 CUDA
CUDA是NVIDIA公司為圖形處理單元(GPU)上的通用運算而開發的平行運算平台和程式設計模型。借助 CUDA,開發人員能夠利用 GPU 的強大功能來顯著加快計算應用程式的速度。在 GPU 加速的應用程式中,工作負載的順序部分在 CPU 上運行,CPU 針對單執行緒進行了最佳化。應用程式的運算密集型部分在數千個 GPU 核心上並行運行。使用 CUDA 時,開發人員可以使用 C、C++、Fortran、Python 和 MATLAB 等流行語言進行程式設計。
CUDA 工具包文檔
CUDA 快速入門指南
WSL 上的 CUDA
CUDA GPU 對 TensorFlow 的支持
NVIDIA 深度學習 cuDNN 文檔
NVIDIA GPU 雲端文檔
NVIDIA NGC 是針對深度學習、機器學習和高效能運算 (HPC) 工作負載的 GPU 最佳化軟體的中心。
NVIDIA NGC Containers 是一個註冊表,讓研究人員、資料科學家和開發人員能夠輕鬆存取用於 AI、機器學習和 HPC 的 GPU 加速軟體的綜合目錄。這些容器充分利用本機和雲端中的 NVIDIA GPU。
CUDA Toolkit 是工具和函式庫的集合,為創建高效能 GPU 加速應用程式提供了開發環境。透過 CUDA 工具包,您可以在 GPU 加速的嵌入式系統、桌上型工作站、企業資料中心、基於雲端的平台和 HPC 超級電腦上開發、最佳化和部署應用程式。該工具包包括 GPU 加速庫、調試和優化工具、C/C++ 編譯器以及運行時庫,用於在包括 x86、