各种加速卡 异构计算

本文介绍了异构计算中常用的加速卡类型,如GPGPU、Xeon Phi和GPDSP。GPGPU以其高计算能力但编程复杂,GPDSP在效率和通用性上表现更好,而Xeon Phi是Intel针对GPU的竞争产品。国防科大的GPDSP芯片矩阵2000在性能-功耗比上优于GPGPU,可能成为中国超算的新选择。

异构计算:

异构计算要使用不同类型的处理器来处理不同类型的计算任务。常见的计算单元包括CPU、GPGPU、GPDSP、ASIC、FPGA和其它类型的众核处理器等。

目前有很多加速卡或者协处理器,用于增加系统性能,常见的有:

GPGPU 是最常见的加速卡,通过PCI-e相连。 GPU 最早是用于图形处理卡,即显卡,后来慢慢发展成为加速卡。2010年,天河一号使用CPU+GPU异构结构获得TOP500第一。当时,天河一号采用的是GPU是AMD的。 天河一号A采用的是Nvidia的GPU卡。

Xeon Phi 是intel生产的协处理器,通过PCI-e 相连。目的是于GPU抗衡,因为Intel显卡不是优势。天河二号采用的便是 Xeon E5 + Xeon Phi。

FPGA 加速卡在2014年也提出了。在SC14, Xilinux便展示了Alpha Data 公司生产的 ADM-PCIE-7V3 FPGA加速板,通过PCIe和host cpu相连,加载Virtex 7系列。FPGA最初的应用是为了验证逻辑设计,即作为开发板,即用于验证逻辑设计,然后将该设计流片,生成ASIC芯片。现在,FPGA已经作为加速卡(即插即用)!!

GPDSP  因为美国Intel禁售Xeon Phi,因此国防科大提出GPDSP作为协处理器,目前还在酝酿中。

 

 

 

 

下面是转载:

****************************************************************************************************

异构计算是一种分布式计算,它或是用能同时支持SIMD方式和MIMD方式的单个独立计算机,或是用由高速网络互连的一组独立计算机来完成计算任务。采用异构计算架构的超算会使用至少2种类型的处理器,其中异构计算架构中通用CPU负责逻辑复

### PINN 物理信息神经网络中的异构计算加速 #### 利用GPU进行并行化运算 PINNs(物理信息神经网络)通常涉及大量的矩阵乘法和其他密集型数值操作。这些特性使得图形处理器 (GPU) 成为了理想的硬件平台,因为它们能够执行大规模的并行浮点运算[^1]。 对于PINN来说,在前向传播过程中求解偏微分方程(PDEs),以及反向传播期间更新权重参数都属于高度可并行化的任务。现代深度学习框架如PyTorch和TensorFlow已经内置了对CUDA的支持,可以方便地将模型部署到支持CUDA架构下的NVIDIA GPU上运行,从而显著提高训练速度。 ```python import torch device = &#39;cuda&#39; if torch.cuda.is_available() else &#39;cpu&#39; model.to(device) ``` #### 使用FPGA实现定制逻辑优化 现场可编程门阵列(FPGAs)提供了另一种途径来提升PINN性能。相比于通用CPU/GPU,FPGAs允许开发者根据特定应用需求定义专用的数据通路结构,这有助于减少不必要的开销并加快某些类型的计算效率。 例如,在处理输入特征提取阶段或者构建自适应滤波器时,可以通过编写HDL代码配置FPGA内部资源形成流水线式的高效算法单元;而在其他部分则继续利用现有的软件库完成剩余工作流程。这样既保留了一定灵活性又实现了针对性强的功能模块集成。 ```verilog module adaptive_filter ( input wire clk, input wire rst_n, ... ); // 定义状态机与时序控制逻辑... endmodule ``` #### 借助TPU专注于张量运算 谷歌开发的张量处理单元(TPUs)专为机器学习而生,尤其擅长于快速执行基于张量的各种算子调用。当涉及到复杂的多维数组变换或是卷积层等场景下,TPU往往能提供超越传统解决方案的表现水平。 由于PINN本质上也是由一系列这样的基本组件构成的整体系统之一种形式,因此合理规划好哪些环节适合交给TPU负责就显得尤为重要。比如在网络初始化之前预先加载必要的常数表至片内缓存区以便后续频繁访问使用,以此降低延迟时间的同时也提高了整体吞吐率。 ```cpp tensorflow::tpu::InitializeSystem(); auto session_options = tensorflow::SessionOptions(); session_options.target = "/job:localhost/replica:0/task:0/device:TPU:0"; std::unique_ptr<tensorflow::Session> session( tensorflow::NewSession(session_options)); ``` #### 实施分布式策略扩大规模效应 除了单节点内的多种异构设备协同外,还可以考虑跨多个服务器集群实施分布式的训练方法。通过划分数据集、分割模型等方式让不同地理位置上的计算机共同参与进来解决更大规模的问题实例。 具体而言,可以在每台工作站配备上述提到的一种或几种类型的加速卡,并借助MPI(Message Passing Interface)/Horovod这类通信协议同步梯度信息进而调整全局共享的一套权值集合。如此一来不仅突破了单一主机内存容量限制还进一步缩短了收敛所需周期。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值