注意:您可以使用这个方便的扩展 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
电路。资料来源:圣迭戈州立大学物理学
电路符号。来源:andrewpover.co.uk
回到顶部
- 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 的第一列和第二列。在行图片 (R) 中,矩阵 A 乘以向量 ~x 会产生一个带有系数的列向量等于行的点积向量为 ~x 的矩阵。
矩阵向量积。来源:维基媒体
矩阵向量积。资料来源: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 中的任何向量;我们可以写成 S = span{(1, 0, 0),(0, 1, 0)},我们看到这两个向量是线性无关的,因此它们形成一个基并且 dim(S) = 2。有一个通用的寻找向量空间基的过程。假设您以 m 个向量 V = span{~v1, ~v2,... 的形式描述了向量空间。 。 。 , ~vm} 并且要求您找到 V 的基和 V 的维数。要找到 V 的基,您必须找到一组跨越 V 的线性独立向量。我们可以使用高斯 - 约当消元法来完成这个任务。将向量 ~vi 写为矩阵 M 的行。向量空间 V 对应于矩阵 M 的行空间。接下来,使用行运算求出矩阵 M 的简化行梯形形式 (RREF)。由于行运算不改变矩阵的行空间,矩阵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) 是一种服务交付,通过高性能生命周期管理降低成本。管理构成 NFV 基础设施 (NFVI) 的软件和硬件的整个生命周期,并维护物理和虚拟资源的实时库存和分配计划。
管理和编排 (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 的核心组件。
英特尔® 图形虚拟化技术(英特尔® 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. 赞助。它使用 LLVM 编译器项目从 Python 语法生成机器代码。 NUMBA可以编译大量以数值为中心的Python,包括许多Numpy函数。此外,NUMBA还支持自动并行循环,生成GPU加速代码以及创建UFUNCS和C回调。
Chaineer是一个旨在灵活性的基于Python的深度学习框架。它根据定义的逐项方法(动态计算图)以及面向对象的高级API提供自动分化API,以构建和训练神经网络。它还使用CUPY来支持CUDA/CUDNN进行高性能训练和推理。
XGBoost是一个优化的分布式梯度提升库,旨在高效,灵活和便携。它在梯度提升框架下实现机器学习算法。 XGBOOST提供了平行的树(也称为GBDT,GBM),以快速准确的方式解决许多数据科学问题。它支持多台机器上的分布培训,包括AWS,GCE,Azure和纱线簇。另外,它可以与Flink,Spark和其他Cloud DataFlow系统集成。
CUML是一组库,可实现机器学习算法和数学原始功能,可与其他急流项目共享兼容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,分布式大数据存储。它可以随机,严格一致,实时访问数据的数据。 HBase对于处理大型稀疏数据集非常有效。 HBase是Hadoop的Apache MapReduce框架的直接输入和输出,并与Apache Phoenix一起使用HBase表启用类似SQL的查询。
Hadoop分布式文件系统(HDFS)是一个分布式文件系统,可处理在商品硬件上运行的大型数据集。它用于将单个Apache Hadoop群集扩展到数百个(甚至数千)节点。 HDFS是Apache Hadoop的主要组成部分之一,其他是MapReduce和纱线。
Apache Arrow是一种无独立的柱状存储器格式,用于平面和分层数据,以对CPU和GPU等现代硬件进行有效的分析操作组织。
Apache Spark™是用于大规模数据处理的统一分析引擎。它在Scala,Java,Python和R中提供高级API,以及支持用于数据分析的一般计算图的优化引擎。它还支持一组丰富的高级工具,包括用于SQL和DataFrames的Spark SQL,用于机器学习的MLLIB,用于图形处理的GraphX以及用于流处理的结构化流。
Apache Predictionio是开发人员,数据科学家和最终用户的开源机器学习框架。它支持事件收集,算法的部署,评估,通过REST API查询预测结果。它基于可扩展的开源服务,例如Hadoop,HBase(和其他DB),Elasticsearch,Spark,并实现所谓的Lambda架构。
Microsoft Project Bonsai是一个低代码AI平台,可加快AI驱动的自动化开发,也是Microsoft的自主系统套件的一部分。盆景用于构建可以提供操作员指导或独立决策以优化过程变量,提高生产效率并降低停机时间的独立决策的AI组件。
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,支持企业集成模式(EIPS)和域特定语言(DSLS)。
Jupyter Notebook是一个开源Web应用程序,可让您创建和共享包含实时代码,方程式,可视化和叙事文本的文档。 Jupyter广泛用于进行数据清洁和转换,数值模拟,统计建模,数据可视化,数据科学和机器学习的行业。
Neo4J是唯一结合本机图存储,高级安全性,可扩展速度优化架构和酸合规性的企业强度数据库,以确保基于关系的查询的可预测性和完整性。
Elasticsearch是基于Lucene库的搜索引擎。它提供了带有HTTP Web界面和无模式的JSON文档的分布式,具有多端功能的全文搜索引擎。 Elasticsearch是在Java开发的。
LogStash是管理事件和日志的工具。一般使用时,该术语包含一个较大的日志收集,处理,存储和搜索活动的系统。
Kibana是Elasticsearch的开源数据可视化插件。它在Elasticsearch集群上索引的内容之上提供可视化功能。用户可以在大量数据的顶部创建条,线和散点图,或饼图和地图。
Trino是用于大数据的分布式SQL查询引擎。它能够极大地加快ETL流程,允许所有人使用标准的SQL语句,并与同一系统中的许多数据源和目标一起使用。
提取,转换和负载(ETL)是一种数据管道,用于从各种来源收集数据,根据业务规则转换数据,然后将其加载到目标数据存储中。
REDIS(远程字典服务器)是开源(BSD许可),内存数据结构存储,用作数据库,缓存和消息代理。它提供数据结构,例如字符串,哈希,列表,集合,带有范围查询,位图,超置式图,地理空间索引和流的排序集。
Apache OpenNLP是一个开源库,用于基于机器学习的工具包,用于处理自然语言文本。它具有用于用例的API,例如命名实体识别,句子检测,POS(词性部分)标记,令牌化功能提取,分解,解析和核心分辨率。
Apache AirFlow是一个由社区创建的开源工作流管理平台,可编程作者,计划和监视工作流程。安装。原则。可扩展。气流具有模块化体系结构,并使用消息队列来协调任意数量的工人。气流可以扩展到无穷大。
开放的神经网络交换(ONNX)是一个开放的生态系统,它使AI开发人员能够随着项目的发展而选择正确的工具。 ONNX 为人工智能模型(深度学习和传统机器学习)提供开源格式。它定义了可扩展的计算图模型,以及内置运算符和标准数据类型的定义。
Apache MXNET是一个旨在效率和灵活性的深度学习框架。它使您可以混合符号和命令性编程,以最大程度地提高效率和生产力。 MXNET以其核心包含一个动态依赖调度程序,该调度程序会自动将符号和当务之急的操作自动平行。顶部的图形优化层使符号执行速度快速且内存有效。 MXNET是便携式且轻巧的,可有效地缩放到多台GPU和多个机器。支持Python,R,Julia,Scala,Go,JavaScript等。
Autogluon是用于深度学习的工具包,可自动化机器学习任务,使您能够轻松地在应用程序中实现强大的预测性能。只需几行代码,您就可以在表格,图像和文本数据上训练和部署高准确的深度学习模型。
回到顶部
开放计算语言(OPENCL)是用于在超级计算机,云服务器,个人计算机,移动设备和嵌入式平台中的其他硬件加速器组成的异质平台并行编程的开放标准。
OPENCL | GitHub
Khronos Group | GitHub
Khronos技术课程和培训
OPENCL教程 - streamhpc
Intel®OpenCL工具简介
OPENCL |英伟达开发商
FPGAS课程的OpenCL简介| Coursera
将OpenCL内核编译为FPGAS课程| Coursera
RenderDoc是一个独立的图形调试器,可以使用Vulkan,D3D11,OpenGL和OpenGL和OpenGL ES或D3D12对任何应用程序进行快速简便的单帧捕获和详细的内省,或者可以跨Windows,Linux,Linux,Android,stadia或Nintendo Switch™。
GPUVERIFY是对用OpenCL和CUDA编写的GPU内核进行正式分析的工具。该工具可以证明内核没有某些类型的缺陷,包括数据竞赛。
OpenCL ICD加载程序是一种可安装的客户端驱动程序(ICD)机制,可让开发人员针对可安装的客户端驱动程序加载程序(ICD加载程序)构建应用程序,而不是针对特定的OPENCL实现链接其应用程序。
Clblas是一个软件库,其中包含OpenCL编写的BLAS函数。
CLFFT是一个软件库,包含OpenCL编写的FFT函数。
CLSPARSE是一个软件库,包含OpenCL编写的稀疏功能。
CLRNG是一个基于OPENCL的软件库,其中包含随机数生成功能。
Clsmith是一种使用两种现有测试技术的工具,即随机差分测试和等效模型输入(EMI),将它们应用于多核环境OpenCL。它的主要特征是生成随机的opencl内核,锻炼了该语言的许多特征。它还带来了通过Deate代码注入应用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 Analyzer是Vulkan®,DirectX®,OpenGL®和OpenCL™的编译器和代码分析工具。
AMD Radeon Prorender是一款基于物理的功能强大的渲染引擎,使创意专业人士几乎可以在任何GPU,任何CPU以及十几个领先的数字内容创建和CAD应用程序中生成令人惊叹的逼真的图像。
Nvidia Omniverse是基于Pixar的通用场景描述和NVIDIA RTX的3D生产管道的功能强大,多GPU,实时仿真和协作平台。
用于OpenCL™应用程序的Intel®SDK是卸载计算密集型工作负载。通过基于内核的编程来自定义异质计算应用程序并加速性能。
NVIDIA NGC是用于深度学习,机器学习和高性能计算(HPC)工作负载的GPU优化软件的枢纽。
NVIDIA NGC容器是一个注册表,可为研究人员,数据科学家和开发人员提供简单地访问用于AI,机器学习和HPC的GPU加速软件的全面目录。这些容器充分利用了NVIDIA GPU本地和云中的优势。
NVIDIA cuDNN 是一个 GPU 加速的深度神经网络基元库。 Cudnn为标准例程提供了高度调整的实现,例如向前和向后卷积,合并,标准化和激活层。 Cudnn加速了广泛使用的深度学习框架,包括Caffe2,Chainer,Keras,Matlab,Mxnet,Pytorch和Tensorflow。
NVIDIA容器工具包是一组工具和库,允许用户构建和运行GPU加速的Docker容器。该工具包包括一个容器运行时库和实用程序,用于自动配置容器以利用 NVIDIA GPU。
回到顶部
CUDA工具包。资料来源:NVIDIA开发人员CUDA
CUDA是由NVIDIA开发的平行计算平台和编程模型,用于用于图形处理单元(GPU)的一般计算。借助CUDA,开发人员能够通过利用GPU的功率来大大加快计算应用程序。在GPU加速应用程序中,工作负载的顺序部分在CPU上运行,该应用程序已针对单线程进行了优化。该应用程序的计算密集部分并联在数千个GPU内核上。使用CUDA时,开发人员可以使用C,C ++,Fortran,Python和Matlab等流行语言进行编程。
CUDA 工具包文档
CUDA快速入门指南
WSL 上的 CUDA
cuda gpu支持张量
NVIDIA深度学习Cudnn文档
NVIDIA GPU云文档
NVIDIA NGC是用于深度学习,机器学习和高性能计算(HPC)工作负载的GPU优化软件的枢纽。
NVIDIA NGC容器是一个注册表,可为研究人员,数据科学家和开发人员提供简单地访问用于AI,机器学习和HPC的GPU加速软件的全面目录。这些容器充分利用了NVIDIA GPU本地和云中的优势。
CUDA工具包是一系列工具和库,为创建高性能GPU加速应用程序提供了开发环境。 CUDA工具包允许您在GPU加速嵌入式系统,桌面工作站,企业数据中心,基于云的平台和HPC SuperComputers上开发,优化和部署应用程序。该工具包包括GPU加速库,调试和优化工具,A C/C ++编译器以及运行时库,以在包括X86,X86,