做网站申请域名空间/网站优化seo是什么意思

做网站申请域名空间,网站优化seo是什么意思,谷歌广告投放, 番茄视频 在线《异构计算云服务和 AI 加速器》系列,共包含以下文章: 异构计算云服务和 AI 加速器(一):功能特点异构计算云服务和 AI 加速器(二):适用场景异构计算云服务和 AI 加速器(…

异构计算云服务和 AI 加速器》系列,共包含以下文章:

  • 异构计算云服务和 AI 加速器(一):功能特点
  • 异构计算云服务和 AI 加速器(二):适用场景
  • 异构计算云服务和 AI 加速器(三):GPU 虚拟化技术
  • 异构计算云服务和 AI 加速器(四):FPGA 虚拟化技术
  • 异构计算云服务和 AI 加速器(五):EAIS & AI 加速器

😊 如果您觉得这篇文章有用 ✔️ 的话,请给博主一个一键三连 🚀🚀🚀 吧 (点赞 🧡、关注 💛、收藏 💚)!!!您的支持 💖💖💖 将激励 🔥 博主输出更多优质内容!!!

异构计算云服务和 AI 加速器(四):FPGA 虚拟化技术

在这里插入图片描述

🚀 FPGAField-Programmable Gate Array现场可编程门阵列)是一种可重构的半导体芯片,允许用户根据需要动态配置硬件逻辑,从而实现定制化的数字电路功能。它介于通用处理器(如 CPU)和专用芯片(如 ASIC)之间,兼具灵活性和高性能计算能力。

将 FPGA 的高性价比算力通过云输出,使得 FPGA 的算力普惠化、平民化,这是 FPGA as a Service 的核心出发点和立足点。同时,云上使用 FPGA 与 FPGA 的传统使用方式也有着非常大的区别。FPGA as a Service 的核心就是 FPGA 虚拟化技术

目前 FPGA 虚拟化技术还在发展初期,近几年随着云计算和 AI 技术的发展,才逐渐成为工业和学术领域研究的热点。关于 FPGA 虚拟化技术的介绍文献也比较少,关于 FPGA 虚拟化技术的发展历史,目前比较全面的总结可以参考 2018 年由 Manchester 大学学生发表的一篇 IEEE 论文《A Survey on FPGA Virtualization》,文中提到早在 2004 年由 Plessl 和 Platzner 发表的一篇论文《Virtualization of Hardware Introduction and Survey》中提到过 FPGA 虚拟化技术的概念,将 FPGA 虚拟化技术分为 时域划分Temporal Partitioning)、虚拟化执行Virtualized Execution)和 虚拟机Virtual Machines)三种。

  • 时域划分 早期主要解决设备容量问题,是将大规模的应用设计拆分为几个小设计,然后将每个设计烧写在单个 FPGA 上顺序执行。时域划分技术如下图所示,主要包括 网表划分数据流图划分CDFG 划分。随着数据量和计算复杂度的增加,单片 FPGA 已经无法满足一个应用的需求,需要多片 FPGA 并行完成,虚拟化技术逐渐打破了时间和空间维度的限制,就像大型数据中心的应用场景:多片 FPGA 并行执行同一个任务,并可以及时切换到下一个任务。

在这里插入图片描述

  • 虚拟化执行 是把一个应用分成几个有关联的任务,并通过一个抽象层来管理和调度它们,其目的是在一定程度上实现 设备无关性Device Independence),从而解决资源管理和安全隔离问题,还可以提高开发效率,比较典型的例子是 PipeRench 项目,此项目成功研发了 Kilocore 芯片,它内置了一个 PowerPC 处理器,实现了硬件虚拟化,并可以动态配置,从而解决 FPGA 的资源限制问题。

  • 虚拟机 通过一个抽象架构来描述应用从而彻底实现设备无关性。起初,虚拟机的概念用来表示 FPGA 的静态架构,譬如 Shell 或者 vFPGA 的 Hypervisor,并不是我们现在理解的虚拟机概念。现在的 FPGA Overlay 技术是应用比较广泛的 FPGA 虚拟化方法之一,它是位于 FPGA 硬件层之上、并连接顶层应用的虚拟可编程架构,实现了对 FPGA 底层硬件资源的抽象化和虚拟化。FPGA Overlay 的具体实现方式有很多种,这里不详细介绍,其主要目的是为上层用户提供他们熟悉的编程架构与接口,比如通过 C 语言等高层语言对 Overlay 中的通用处理器等进行编程,而无须担心具体的硬件电路实现,这点类似 HLS。Overlay 实现了 FPGA 的硬件无关性,便于应用设计在不同 FPGA 架构间移植。另外,用户可以选择只编译自己改动的逻辑部分,在很大程度上缩短了 FPGA 的编译时间,也方便对应用进行调试和修改。但是在实际开发中,由于其引入的 Overlay 层并不能完全隐藏 FPGA 结构,而且此技术没有业界统一标准,所以会来带额外的开发难度和成本。

按照资源的抽象级别,FPGA 虚拟化技术分为三类,如下图所示。

在这里插入图片描述

  • 资源级别Resource Level):FPGA 上的资源可分为两种,一种是可配置的,一种是不可配置的,所以资源级别的虚拟化主要指架构虚拟化(增加一个抽象层)和I/O 虚拟化,比较典型的技术就是 FPGA Overlay 技术,I/O 虚拟化技术本质上跟 CPU/GPU 实现类似,比如 FPGA 云主机用到的设备透传功能。
  • 单节点级别Node Level):单节点指单片 FPGA,主要指具备资源管理功能的抽象层,包括 VMM(Virtual Machine Monitors,也叫 Hypervisor),Shell(FPGA OS或 Hypervisor-vFPGA)和调度管理,主要用于多租户场景,即 FPGA 云主机。
  • 多节点级别Multi-Node Level):多节点指由两片以上 FPGA 组成的 FPGA 集群,虚拟化的目的是在多片 FPGA 上完成同一个加速任务。其实现依赖 FPGA 互联功能,常见的有三种互联方式,如下图所示。

在这里插入图片描述

🚀 将加速器扩展到多片 FPGA 上的架构集合。此处

  • a) 代表 FPGA 到 FPGA 通信;
  • b) 展示了一种服务器-客户机架构,在这种架构中 FPGA 直接和服务器通信;
  • c) 表示在服务器-客户机架构中,FPGA 作为客户机 CPU 的一个特殊设备。

FPGA 虚拟化技术比较典型的应用场景包括基于 OpenCL 实现的 MapReduce 框架和微软的 Catapult 项目。

从 FPGA 云主机的实现方式来说,FPGA 虚拟化指 I/O(PCIe 设备)虚拟化技术。

I/O 虚拟化技术,有些地方也叫 I/O 设备虚拟化技术,目前主流的模型实现方式有以下几种:

  • 全模拟:纯软件实现,通常由虚拟化层(QEMU)完全模拟一个设备给虚拟机用,其优点是不需要修改操作系统内核和驱动,因此它是可移植性与兼容性最好的 I/O 设备虚拟模型。但是,这种实现模型性能不高,主要原因是:第一,软件模拟本身就无法具有很高的性能 ;第二,在这种实现方式中,I/O 请求的完成需要虚拟机与监视程序多次的交互,产生大量的上下文切换,开销巨大。
  • Virtio 驱动半虚拟化:将设备虚拟的工作一拆为二,一部分在虚拟机内核中作为前端驱动,一部分放到虚拟化层上(通常是 QEMU)作为后端,前后端共享 Virtio 环协同完成任务。Virtio 前后端的技术只是减少了 VM Exit 和 VM Entry(Guest 和 Host 的上下文切换),并且使 Guest 和 Host 能通过并行处理 I/O 来提高吞吐量并减少延迟。但是,I/O 的路径并不比全虚拟化技术少。
  • 硬件辅助虚拟化:借助硬件技术,如 Intel 的 VT-d 技术实现 PCI 设备直接挂载给虚拟机,常见的有设备直通和 SR-IOV。

纵观各大云服务提供商,FPGA 云服务器采用的都是 设备直通Device Passthrough),主要因为以下三点 :

  • 一是 FPGA 的性能,客户考虑业务搬迁上云首先要做的就是对比,跟本地物理机比、跟竞品(如 GPU/ASIC)比。虚拟化必然导致部分的硬件性能损耗,1% 的性能损失都会增大客户拒绝使用 FPGA 云服务器的可能性 ;
  • 二是应用场景,FPGA 比较适用于计算密集型和通信密集型任务。在大数据爆发的时代,很多应用都需要调度多片 FPGA 才能满足需求,将同一片 FPGA 共享给多个客户的需求并不强烈 ;
  • 三是实现难度,分片 FPGA(vFPGA)的多租户场景,在安全和隔离的实现上,虽然可以复用 vGPU 方案,但是硬件逻辑开发的难度非常大。综合考虑,各大云服务提供商在FPGA 设备虚拟化时选择的都是性能损耗最小的设备直通方案。

设备直通技术:是将宿主机上的 PCIe 设备直接分配给客户机使用,虚拟机独占这个设备,在客户机进行对应的 I/O 操作时,不需要通过 VMM 或被 VMM 截获,所以设备性能几乎无损耗。设备直通技术的实现依赖 IOMMU 功能(隔离虚拟机对内存资源的访问),需要硬件支持,比如 Intel 平台的VT-d 技术。

说到 VT-d 技术,首先要解释下 DMA(直接内存读取),它是一种硬件机制,允许外围设备和主内存之间直接传输数据,不需要 CPU 参与,由此可以大大提高设备的吞吐量。I/O 虚拟化的关键在于解决 I/O 设备与虚拟机的数据交换问题,而这部分主要指 DMA 和中断请求(IRQ)。只要解决好这两个方面的隔离、保护及性能问题,就是成功的 I/O 虚拟化。VT-d 通过重新设计 IOMMU 架构,在 CPU、内存和 I/O 设备之间增加了一个硬件设备,其主要功能是将 I/O 设备的 DMA 访问请求和中断请求重定向到 VMM 设定好的 VM 中,最终实现了 DMA 虚拟化,这项技术也叫 DMA 重映射

阿里云 FPGA 云主机的设备直通方式采用的是 VFIO,这是一套用户驱动框架,通俗来讲就是一个设备驱动。在虚拟化情景下,VFIO 主要用来在用户实现设备直通,充分利用了 VT-d 技术提供的 DMA 重映射和中断重映射特性,在保证直通设备的DMA 安全性的同时其 I/O 性能接近物理设备。

总体来说,FPGA 板卡(PCIe 设备)的透传方式跟 GPU/NIC 等 PCIe 设备并无差别,鉴于 FPGA 本身的硬件特性和安全隔离要求,阿里云 FPGA 云服务器虽然采用了设备直通方式,但是并没有把 FPGA 设备功能完全暴露给虚拟机,而是将 PCIe 从功能角度划分为两个 PF(Physical Function):即 管理 PFManagement PF)和 用户 PFUserPF),如下图所示。

在这里插入图片描述

  • 管理 PF:提供 FPGA 各种控制功能,如 FPGA 镜像加载、状态监控等。例如,在 FPGA 云主机上,只有先发送加载请求,后台系统认证身份后,通过宿主机驱动才能发起加载操作。
  • 用户 PF:对应的是逻辑功能接口,此功能会通过设备直通方式透传给虚拟机,用户可以使用官方提供的驱动访问设备,也可以自己开发。

PCIe 功能双 PF 的划分,在一定程度上保护了 FPGA 板卡不会被用户恶意烧写,从而降低了宿主机的停机风险,也保证了 FPGA as a Service 的可靠性。此方案的实现基于 FPGA 特殊的硬件特性(部分可重配置),主流云服务提供商的做法基本类似。

部分可重配置Partial Reconfiguration):在前面介绍 FPGA 虚拟化技术的时候提到过,其实现原理是将 FPGA 内部划分出多个区域,在 FPGA 运行时单独对这些区域进行编程和配置,以改变区域内电路的逻辑,但并不影响 FPGA 其他电路的正常运行。它可以实现时间域和空间域两个维度的任务切换,很多大型应用的逻辑都是利用 FPGA 这一特性实现的,如微软的 Catapult 项目同时提出了 Shell(不可配置区域)和 Role(可重配的逻辑单元)的概念。也有将这一特性应用在多租户场景下的,提出了vFPGA 的概念,即将一个 FPGA 共享给多个用户使用,如 IBM 的 CloudFPGA 项目。

各云服务提供商的 FPGA 云服务器也抓住了这一特性,将 FPGA 在逻辑上划分为 Shell(静态区)和用户逻辑(动态区)。

  • 静态区:FPGA 的静态区主要包括 PCIe、DRAM、DMA 及中断等接口逻辑,一般由云服务提供商提供,主要负责 FPGA 管理功能。
  • 用户逻辑:FPGA 的动态可重配置区域属于用户数据,即用户的知识产权(IP)。

阿里云 FPGA 云主机在 F3 实例设计时也提出了 Role 的概念,它是和 Shell 类似的封装,跟用户逻辑一样处于动态区域,其目的是简化 Shell 功能,以尽可能减少 Shell 升级。另外,通过 Role 实现了同一个 Shell 既可以支持 OpenCL 开发,也可以支持 RTL 开发的功能,同时降低了用户对 FPGA 的开发门槛。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/899605.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙harmonyOS:笔记 正则表达式

从给出的文本中,按照既定的相关规则,匹配出符合的数据,其中的规则就是正则表达式,使用正则表达式,可以使得我们用简洁的代码就能实现一定复杂的逻辑,比如判断一个邮箱账号是否符合正常的邮箱账号&#xff0…

[首发]烽火HG680-KD-海思MV320芯片-2+8G-安卓9.0-强刷卡刷固件包

烽火HG680-KD-海思MV320芯片-28G-安卓9.0-强刷卡刷固件包 U盘强刷刷机步骤: 1、强刷刷机,用一个usb2.0的8G以下U盘,fat32,2048块单分区格式化(强刷对U盘非常非常挑剔,usb2.0的4G U盘兼容的多&a…

大模型架构记录12【Agent实例-tool】

运行根目录下几个ipynb文件- Learn-Agent.ipynb- 学习《Custom agent 自定义代理》部分- v1-Create-Custom-Agent.ipynb- v2-Create-Custom-Agent.ipynb- 基于v1,新增一些职位描述(JD)信息- v3-Create-Custom-Agent.ipynb- 基于v2&#xff0c…

在MCU工程中优化CPU工作效率的几种方法

在嵌入式系统开发中,优化 CPU 工作效率对于提升系统性能、降低功耗、提高实时性至关重要。Keil 作为主流的嵌入式开发工具,提供了多种优化策略,包括 关键字使用、内存管理、字节对齐、算法优化 等。本文将从多个方面介绍如何在 Keil 工程中优…

Java开发者指南:深入理解HotStuff新型共识算法

🧑 博主简介:CSDN博客专家、全栈领域优质创作者、高级开发工程师、高级信息系统项目管理师、系统架构师,数学与应用数学专业,10年以上多种混合语言开发经验,从事DICOM医学影像开发领域多年,熟悉DICOM协议及…

opencv图像处理之指纹验证

一、简介 在当今数字化时代,生物识别技术作为一种安全、便捷的身份验证方式,正广泛应用于各个领域。指纹识别作为生物识别技术中的佼佼者,因其独特性和稳定性,成为了众多应用场景的首选。今天,我们就来深入探讨如何利…

【STM32】知识点介绍一:硬件知识

文章目录 一、电源引脚简介二、电平信号三、电路分析 一、电源引脚简介 VCC、GND、VDD和VSS是电子电路中常见的术语,代表着不同的电源引脚或电压。 VCC(Voltage at the Common Collector):VCC是指集电极(Collector&am…

什么是 SEO(搜索引擎优化)?

您有网站吗,或者您正在考虑创建一个网站?您想吸引更多人加入您的业务吗?如果答案是肯定的,那么毫无疑问:SEO 应该是您营销工作的一部分。这是建立品牌和吸引用户访问您的网站的好方法。但它实际上意味着什么呢&#xf…

鸿蒙HarmonyOS NEXT设备升级应用数据迁移流程

数据迁移是什么 什么是数据迁移,对用户来讲就是本地数据的迁移,终端设备从HarmonyOS 3.1 Release API 9及之前版本(单框架)迁移到HarmonyOS NEXT(双框架)后保证本地数据不丢失。例如,我在某APP…

【现代深度学习技术】现代卷积神经网络04:含并行连接的网络(GoogLeNet)

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上,结合当代大数据和大算力的发展而发展出来的。深度学习最重…

【ESP32】ESP32与MQTT通信:实现传感器数据监测与设备控制

ESP32与MQTT通信 1 项目概览2 硬件组成3 MQTT协议解析MQTT协议简介MQTT核心概念本项目中的MQTT应用 4 MQTT Broker选择EMQX Broker其他常用MQTT Broker 5 代码解析初始化与配置MQTT消息处理发布传感器数据 6 MQTT话题TOPIC设计7 EMQX的优势在IoT项目中的体现8 MQTT通信流程9 应…

每天一篇目标检测文献(六)——Part One

今天看的是《Object Detection with Deep Learning: A Review》 目录 一、摘要 1.1 原文 1.2 翻译 二、介绍 2.1 信息区域选择 2.2 特征提取 2.3 分类 三、深度学习的简要回顾 3.1 历史、诞生、衰落和繁荣 3.2 CNN架构和优势 一、摘要 1.1 原文 Due to object dete…

Arthas线上问题诊断器

Arthas是Alibaba开源的java诊断工具 解决问题 这个类从哪个jar 包加载的?为什么会报各种相关的Exception? 遇到问题无法在线上debug,不能直通过加载日志再重新发布 有什么办法可以监控到JVM的实时运行状态? …

[Lc5_dfs+floodfill] 简介 | 图像渲染 | 岛屿数量

目录 0.floodfill算法简介 1.图像渲染 题解 2.岛屿数量 题解 之前我们在 bfs 中有介绍过[Lc15_bfsfloodfill] 图像渲染 | 岛屿数量 | 岛屿的最大面积 | 被围绕的区域,现在我们来看看 dfs 又是如何解决的呢 0.floodfill算法简介 floodfill算法又叫洪水灌溉或者…

JVM类加载器详解

文章目录 1.类与类加载器2.类加载器加载规则3.JVM 中内置的三个重要类加载器为什么 获取到 ClassLoader 为null就是 BootstrapClassLoader 加载的呢? 4.自定义类加载器什么时候需要自定义类加载器代码示例 5.双亲委派模式类与类加载器双亲委派模型双亲委派模型的执行…

【SPP】RFCOMM 层在SPP中互操作性要求深度解析

蓝牙串口协议(SPP)通过 RFCOMM 协议实现 RS232 串口仿真,其互操作性是设备互联的关键。本文基于蓝牙核心规范,深度解析 RFCOMM 层的能力矩阵、信号处理、流控机制及实战开发,结合状态机、流程图和代码示例,…

Gossip协议:分布式系统中的“八卦”传播艺术

目录 一、 什么是Gossip协议?二、 Gossip协议的应用 💡三、 Gossip协议消息传播模式详解 📚四、 Gossip协议的优缺点五、 总结: 🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式&…

【C++初阶】----模板初阶

1.泛型函数 泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。 2.函数模板 2.1函数模板的概念 函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型…

git-- github的使用--账户和本地连接

以下指令在git 执行bash 流程:先看有没有密钥; 没有的话,在电脑生成密钥对,公钥复制到github; 要想使用https,配置令牌,注意令牌有期限问题,连接不了有可能是期限问题 一个电脑对…

Angular由一个bug说起之十五:自定义基于Overlay的Tooltip

背景 工具提示(tooltip)是一个常见的 UI 组件,用于在用户与页面元素交互时提供额外的信息。由于angular/material/tooltip的matTooltip只能显示纯文本,所以我们可以通过自定义Directive来实现一个灵活且功能丰富的tooltip Overlay…