【AI底层逻辑】——篇章7(上):海量运算背后的算力支持

news2024/11/27 8:28:52

目录

引入

一、计算机芯片

1、芯片的制造

2、复杂指令集&精简指令集

3、并行计算的GPU

二、协作计算

1、分布式技术“三论文”

2、不可兼得的CAP定理

3、故障类型

续下篇...

往期精彩:


引入

早在2016年DeepMind就公布了AlphaGo的算法细节,但是时至今日并未看到第二个与AlphaGo旗鼓相当的围棋人工智能!因为“数据”、“算法”、“算力”三者都是AI不可或缺的

电子计算机发展不到100年,随着集成工艺的提升,集成电路可安装更多的晶体管。19世纪Intel创始人戈登.摩尔提出的“摩尔定律”——当价格不变时,集成电路上可容纳的晶体管数目每隔18到24个月增加一倍,性能提升一倍,精准预测了芯片发展初期呈现的指数级增长规律!1958年第一代集成电路仅包含两个晶体管;1997年,奔腾Ⅱ处理器的晶体管数扩大到750万;而现今可以在一根头发丝大小的空间集成上万个晶体管——科技的加速回报法则:21世纪的进步可能是20世纪的1000倍。

20世纪80年代,计算机每秒执行100万次操作;如今计算机每秒可执行超10亿次操作;超级计算机甚至可轻松达到每秒操作亿亿次——用于专业工程问题,如天气预报、宇宙探索等!我国在设计天宫一号飞行器是就使用了自主研发的超级计算机“神威.太湖之光”,是世界上首台每秒运算超过10亿亿次的超级计算机,峰值运算性能达每秒12.54亿亿次。


一、计算机芯片

芯片是计算机用于计算的核心组件,底层逻辑是逻辑运算,通过电路开关尽心一系列电路控制实现逻辑电路——涉及莱布尼兹二进制数理论、布尔的布尔代数、香农信息论任何具有开和关两种状态的元器件经过组合后可以表达任意逻辑关系

计算机最早使用继电器控制电路逻辑,后面发明了电子管,随后使用晶体管,如今可以将各种功能的电路集成在一块芯片上(集成电路)!

1、芯片的制造

如今的工艺,集成电路的晶体管尺寸可达纳米级,可以让一个集成电路封装几十亿甚至上百亿个晶体管,实现复杂的电路逻辑。

制作时,首先把二氧化硅转化为高纯度多晶硅(纯度11个9,即99.999999999%,比纯金99.6%还纯),随后把这些多晶硅提炼成圆柱形的单晶硅,形成硅晶圆片(晶圆),之后在这些晶圆上制造各种元器件。那么如何操纵只有几纳米距离的元器件呢?

答:光刻技术,类似于照片的冲印技术,即光的投影。首先需要在硅片表面均匀涂好光刻胶,然后将覆盖在掩模版上的集成电路微型图形转印到光刻胶上。光刻技术用的光对波长有特定要求,光的波长越短,能控制得尺寸就越小,可以光刻得电路越复杂。

目前,业界使用最为主流得短波光是DUV(Deep Ultraviolet,深紫外光),波长只有193纳米,比可见光中紫光得波长得一半还要小 。

比DUV波长更短的是EUV(Extreme Ultraviolet,极紫外光),波长只有13.5纳米,直到2020年,世界只有荷兰ASML(阿斯麦)公司掌握了操控极紫外光的核心技术。——ASML公司设计了非常精细的工艺流程:使用DUV的光脉冲,先后两次照射到真空中的液态金属锡上,第一次先将液态锡击碎,第二次从中激发出EUV。

当然,激发出光源只是生产出光刻机的第一步,实际制造时还需要完整的解决方案,包括如何产生稳定的光源、能耗要求、质量控制,甚至对环境也有很高的要求。当然,EUV光刻机并不是靠ASML一家公司就可生产,如今技术已经变得非常复杂,很多技术很难由一家公司完全掌握,零部件供应如美国的光源Cymer、德国的镜片蔡司、丹麦的机械手ABB等。

目前,EUV光刻机是全世界最顶尖技术的大集成,可以说代表了人类技术的最高水平!

2、复杂指令集&精简指令集

在图灵机模型指导下,当今计算机有三大核心部件——CPU(中央处理器)、内存硬盘!CPU负责调度和运算;内存负责暂存运算数据;硬盘负责永久存储数据。

CPU使用的指令集架构通常分两种——复杂指令集(CISC)精简指令集(RISC)

①复杂指令集(CISC),尝试用尽量少的机器语言指令来完成复杂的计算任务,其典型架构是Intel、AMD公司推出的x86架构,日常使用的笔记本电脑、台式机都用的是CISC处理器。虽然CISC有大量的指令集和复杂的寻址方式,但只有20%的指令经常被用到,且这让CPU的设计变得复杂。于是RISC被提出。

②精简指令集(RISC),RISC的指令集合更小,执行速度更快,常用于手机、嵌入式系统、小型机服务器。假设现在要让机器人行走,在RISC处理器中只有一条“行走”指令,而对于CISC处理器,会需要“抬左脚”、“迈左脚”、“抬右脚”、“迈右脚”等一系列指令。

3、并行计算的GPU

普通家用电脑和服务器很难直接用于深度学习和模型训练,因为计算数据量巨大,且对并行计算要求很高。所以要开发深度学习算法,一定需要能够进行并行计算的硬件技术,如搭载GPU(图形处理器)——GPU是随着游戏、3D设计等应用对图像渲染的要求而发展起来的。

GPU原本是用于优化图像的专用处理芯片,可把它看作擅长图像处理的CPU,图像处理需要计算各像素点的位置和颜色,实现图像渲染——数学上表现为对多维向量矩阵的运算。

对比:CPU和GPU都有控制、缓存运算单元,但是占比不同CPU擅长处理指令控制和复杂调度,能进行通用计算,综合能力强GPU的芯片中缓存部分占比小,但计算部分占比很大,更擅长执行简单但要大量重复的计算任务——如浮点数计算、深度学习大型矩阵运算、神经网络模型训练或其他需要并行计算的场景。在相同的计算精度下,GPU相比CPU,处理速度更快、服务器投入更少、能耗更低。 


二、协作计算

计算机属于一个物理装置,突破不了自身物理极限(能力有限),很多大型复杂任务需要进行拆解分摊到多台计算机上进行并行计算,然后再合并结果——分布式计算思想。

1、分布式技术“三论文”

分布式技术——把数据分散到不同的服务器上进行处理的技术,它的发展很多归功于谷歌三论文:2003年的GFS(一种分布式文件存储系统)、2004年的MapReduce(一种分布式数据计算技术)、2006年的BigTable(一种分布式数据存储技术)。如今虽然此些技术已经更新换代,但是它们的作用毋庸置疑。

①存储海量文件数据GFS的核心思想是实现存储介质数据冗余比如将一份数据分割成很多块存储在多台服务器上,而且存多个副本(这样任何一台服务器故障都不会导致数据丢失),同时解决了传统文件系统无法存储超过硬盘容量的问题。

②海量数据的计算。以电商处理交易为例,采用分治的方法,即把用户和系统都分成多份,每个子系统为不同用户服务,这样有多少个子系统,总的计算能力就可以扩展多少倍。

分布式计算实现的关键在于如何将计算任务分解,再合并得到结果——先映射(Map),再归集(Reduce)的过程,即MapReduce。比如当搜索网站要定位某个网页时,它把网页之间的关系转换为数学上的矩阵运算,但网页数量巨大(总矩阵巨大),此时MapReduce把大矩阵拆分成若干足够小的矩阵,计算这些小矩阵得到最终结果。

③存储大表数据BigTable是处理很大的表的技术,大表是一张逻辑上的表,表里的数据会分别存储在不同服务器。BigTable基本思想是把所有数据都存入这张虚拟表,表很宽且支持根据需要增减字段——数据模型虽然定义为结构化数据,但不像传统数据库表有着各种约束。BigTable必须将数据存储在分布式文件系统上,因此具有很好的扩展性,可支持海量数据的存储和查询。

谷歌三论文并未公布具体细节,后来美国人卡廷发起开源项目Hadoop(实现大规模的分布式计算系统),允许任何人下载安装,流行了起来!

2、不可兼得的CAP定理

分布式系统是一种在物理上分散、逻辑上集中的系统,它将分散在计算机网络中的多个节点连接起来,共同对外提供服务。分散就意味着必然要考虑任一处单点故障情况,一般一份数据存在多个副本,所有节点可做到在线扩缩容,以匹配业务负载——即使部分节点故障,也必须确保整个系统的高可用,保证对外服务。

设计和实现分布式系统需要遵守的理论基础——CAP定理,也称布鲁尔定理:在一个分布式系统中,不能同时兼顾一致性(Consistency)、可用性(Availability)、分区容错性(partition tolerance),最多只可实现两个。

可用性是一项重要指标,只要系统对外服务必须考虑到。对于传统的单节点系统一致性需要重视;但是对于分布式系统应更重分区容错性,并根据实际情况适当放弃一致性——例如在一定约束下,允许系统在一段时间(而不是立刻)达到一致状态,目前大部分互联网应用都是这种实现方式。

拓:要做到一致性,意味着系统不能发生任何故障,所有节点之间通信无延时,但是越强的一致性往往造成越弱的处理能力和越差的可扩展性。通信无延时往往需要绝对准确的计时设备,如原子震荡时钟,谷歌在其分布式数据库中采用基于原子时钟和GPS的时间同步方案,实现将不同数据中心的时间偏差控制在10ms以内,该方法简单直接但是成本巨大。

3、故障类型

故障是不可避免的,人们设计了各种冗余和备份的信息系统架构,来保证单点故障不会影响整体的运行情况!

①软硬件故障。包括网络通信故障、服务区宕机等,对此解决方案已较为成熟——启用备份,隔离故障,如网络通信A->B不行,就断开A->B,启用A->C->B绕行;如果服务器节点A故障,就启用服务器节点B,接管A的对外服务。

分布式系统如何发现有节点发生故障?通过对各个服务器节点进行网络或磁盘间的通信检测(心跳检测),再利用投票机制来保证容错,这种容错方法性能较好,可容忍不超过一半的故障节点。

分布式系统中有个重要机制,即节点间要能达到共识——节点就某个提案达成一致意见,如果每个节点都可保证”理想“性能(瞬间响应、超高吞吐)无故障运行,节点之间通信瞬时送达,那么各节点的投票应答都可在瞬间完成。但是不幸的是共识被证明是无解的——”FLP不可能原理“

②节点伪造等逻辑故障。除了软硬件故障,还有一种逻辑故障,比如有节点伪造信息恶意响应——”拜占庭错误”

分布式系统是一个去中心化网络,它不需要一个中心节点作为大脑来控制整个系统运行,为保证这一点就必须考虑一致性机制(该系统必须允许少量节点是不可信的,但仍要保证整体基本”共识“),拜占庭算法讨论的就是最坏情况下的保障机制——如何在存在叛徒的情况下保证同时进攻,引申到计算领域发展成容错理论首个共识算法的实现方案随着比特币的出现得到应用。

容忍拜占庭错误的算法:①以PBFT(Practical Byzantine Fault Tolerance)为代表的确定性算法;②以PoW(Proof of Work)为代表的概率算法。①一旦达成对某个结果的共识就不可逆转,即共识是最终结果;②给出的共识结果是临时的,随着时间的推移或者某些条件的强化,共识结果被推翻的概率越来越小,最终成为事实上的结果。

续下篇...

  往期精彩:

【AI底层逻辑】——篇章5(下):机器学习算法之聚类&降维&时间序列

【AI底层逻辑】——篇章3(下):信息交换&信息加密解密&信息中的噪声

【AI底层逻辑】——篇章3(上):数据、信息与知识&香农信息论&信息熵

【机器学习】——续上:卷积神经网络(CNN)与参数训练

【AI底层逻辑】——篇章1&2:统计学与概率论&数据“陷阱”

【AI底层逻辑】——篇章5(上):机器学习算法之回归&分类

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

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

相关文章

易服客工作室:如何在WordPress网站中举办虚拟活动

您是否正在寻找举办和管理虚拟活动的最佳方式? 也许您想在线举行下一次会议或举办有关您的产品和服务的网络研讨会。您可能担心它太贵,或者您没有技术知识来实现​​它。 在本文中,我们将列出您所需的在线服务的所有设备,并教您…

ubuntu python 查看系统是否可用 cuda

ubuntu python 查看系统是否可用 cuda 初环境与设备查看环境演示效果 本篇文章将介绍ubuntu python 查看系统是否可用 cuda 初 希望能写一些简单的教程和案例分享给需要的人 环境与设备 系统:ubuntu 22.04 工具:python 3.10.6 设备:Nvidi…

JavaScript 运行机制详解:再谈Event Loop

一、为什么JavaScript是单线程? JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊。 JavaScript的单线程,与它的用途有关。…

【二叉树】1-5,理论基础、前中后序遍历的递归法和迭代法、层序遍历

理论基础、前中后序遍历的递归法和迭代法、层序遍历 1,二叉树的种类满二叉树完全二叉树二叉搜索树平衡二叉搜索树 2,存储方式链式存储线式存储 3,二叉树的遍历深度优先搜索前序遍历(递归法、迭代法)中序遍历&#xff0…

无涯教程-Perl - msgrcv函数

描述 此函数从队列ID接收消息,并将消息放入变量VAR中,最大大小为SIZE。 语法 以下是此函数的简单语法- msgrcv ID, VAR, SIZE, TYPE, FLAGS返回值 该函数在错误时返回0,在成功时返回1。 Perl 中的 msgrcv函数 - 无涯教程网无涯教程网提供描述此函数从队列ID接收消息,并将消…

山东布谷科技直播软件开发WebRTC技术:建立实时通信优质平台

在数字化的时代,实时通信成为了人们远程交流的主要方式,目前市场上也出现了很多带有实时通信交流的软件,实时通信符合人们现在的需求,所以在直播软件开发过程中,开发者也运用了实时通信技术为直播软件加入了实时通信的…

什么是CSS Grid布局?什么是Flexbox布局?它们两者有什么不同?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ CSS Grid布局⭐ Flexbox布局⭐ 不同之处⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那些对Web…

Chrome浏览器导出插件并安装到其他电脑浏览器上的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

说一下什么是tcp的2MSL,为什么客户端在 TIME-WAIT 状态必须等待 2MSL 的时间?

1.TCP之2MSL 1.1 MSL MSL:Maximum Segment Lifetime报文段最大生存时间,它是任何报文段被丢弃前在网络内的最长时间 1.2为什么存在MSL TCP报文段以IP数据报在网络内传输,而IP数据报则有限制其生存时间的TTL字段,并且TTL的限制是基于跳数 1.3…

【C++基础(十)】C++泛型编程--模板初阶

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C   🔝🔝 模板 1. 前言2. 函数模板3. 函数模板原理4. 函数…

2023年中国倍率型磷酸铁锂出货量及市场需求分析:插电混动汽车用电池为第一大应用市场[图]

由于新能源锂电池市场的竞争极其激烈,各大电池生产厂商不得不细化研发方向,抢占竞争者少、营利性高的细分专业赛道。因此,“自定义”型单体电池应运而生。其主要分为三个大类,分别为高倍率型电池、长寿命型电池和大容量型电池。这…

Linux安装Oracle数据库!

第一步,调试Linux虚拟机启动: 打开后,报错,如图: 解决: 步骤1:用管理员身份启动cmd,输入:bcdedit 查看hyper-v的状态,这里应该是off关闭状态。 步骤2&#…

cuda+anaconda+pytorch按照教程

首先安装显卡对应的CUDA版本,关键点在于区别显卡支持的CUDA最高版本和运行版本 1、查看当前显卡支持的最高版本,有两种方式: 1)NVIDIA控制面板—>帮助—>系统信息—>组件—>NVCUDA.dll对应版本 请注意,12…

Java的switch语句块

说明 Java的switch语句块可以用于多个分支的判断执行。每个case分支执行完后,要么退出方法体(用return语句)、要么退出switch语句块(用break语句)、要么继续往下执行。但如果一个case执行完后,要继续执行下…

jQuery使用(超详细)

一、jQuery介绍 二、jQuery的简单使用 <head><meta charset"utf-8"><title></title><script type"text/javascript" src"../js/jquery-1.10.2.min.js"></script><script type"text/javascript"…

安装使用IDEA,修改样式,配置服务,构建Maven项目(超级详细版)

目录 前言&#xff1a; 一&#xff0c;安装 1.1打开官网JetBrains: Essential tools for software developers and teams点击 Developer Tools&#xff0c;再点击 Intellij IDEA 2.点击下载​编辑 3.选择对应的版本&#xff0c;左边的 Ultimate 版本为旗舰版&#xff0c;需要…

分割一切模型 Fast SAM C++推理部署---onnxruntime(有核心代码)

Fast SAM C推理部署—onnxruntime 核心源代码在结尾处 晓理紫 0 XX开局一张图&#xff0c;剩下… 本文记录只为日后更好学习 1 Fast SAM 简介 Fast SAM是仅使用SAM作者发布的SA-1B数据集的2%进行训练的CNN任意分割模型。FastSAM的性能与SAM方法相当&#xff0c;运行速度提高了…

概率论与数理统计:第二、三章:一维~n维随机变量及其分布

文章目录 Ch2. 一维随机变量及其分布1.一维随机变量1.随机变量2.分布函数 F ( x ) F(x) F(x)(1)定义(2)分布函数的性质 (充要条件)(3)分布函数的应用——求概率3.最大最小值函数 2.一维离散型随机变量及其概率分布(分布律)3.一维连续型随机变量及其概率分布(概率密度)4.一般类型…

Linux基础篇(五)文件权限

目录 一、文件权限的概念 二、Linux命令ll的结果解析 三、Linux修改权限的两种方法 四、更改文件的拥有者和所属组 五、身份的判定 六、系统掩码 七、删除文件需要的权限 八、粘滞位 一、文件权限的概念 1.是什么&#xff1f; 简单地说就是什么身份的用户能对文件做什么事。 …