<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>upyun (又拍云)</title>
    <link>https://ruby-china.org/upyun</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>【GPU 算力福利】省心省钱的 GPU 租赁平台，4090 显卡只要 1.69 元/小时</title>
      <description>&lt;p&gt;&lt;img title=":gift:" alt="🎁" src="https://twemoji.ruby-china.com/2/svg/1f381.svg" class="twemoji"&gt; 【活动 1：社区福利】
618 特惠  高配 4090 仅需 1.69 元/小时
活动地址：&lt;a href="https://www.houdeyun.cn/?from=ruby-china.org" rel="nofollow" target="_blank"&gt;https://www.houdeyun.cn/?from=ruby-china.org&lt;/a&gt;
通过社区专属链接点击注册，再送 30 元代金券（该券不可购买此活动卡型）&lt;/p&gt;

&lt;p&gt;&lt;img title=":gift:" alt="🎁" src="https://twemoji.ruby-china.com/2/svg/1f381.svg" class="twemoji"&gt; 【活动 2：分享有礼】
本帖发布 2 周内，参与者通过技术社区、个人博客等通道任选其一，撰写发布厚德云 GPU 算力使用体验内容，并在此活动贴下留下你的联系方式与分享内容链接，我们将再赠送 200 元厚德云 GPU 算力代金券&lt;/p&gt;

&lt;p&gt;&lt;img title=":bulb:" alt="💡" src="https://twemoji.ruby-china.com/2/svg/1f4a1.svg" class="twemoji"&gt; 【关于厚德云】
厚德云是又拍云旗下专注于 AI 算力的云平台，为用户提供包括 AI 算力云、一键生成 AI 应用、GPU 算力服务器定制、AIDC 智算中心托管等全方位 AI 算力服务。&lt;/p&gt;

&lt;p&gt;GPU：全系算力资源，支持一键部署环境，提供主流模型预装，加速训练进程&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/7eb6d589-2d4a-4c26-8c5c-02173d0710dc.jpg!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;AI 应用：无需部署  一键开启
&lt;img src="https://l.ruby-china.com/photo/upyun/74a1c32f-79a5-400d-9362-2f591481321c.jpg!large" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>upyun</author>
      <pubDate>Fri, 07 Jun 2024 11:37:37 +0800</pubDate>
      <link>https://ruby-china.org/topics/43725</link>
      <guid>https://ruby-china.org/topics/43725</guid>
    </item>
    <item>
      <title>3 分钟了解 NVIDIA 新出的 H200</title>
      <description>&lt;p&gt;英伟达在 2023 年全球超算大会上发布了备受瞩目的新一代 AI 芯片——H200 Tensor Core GPU。相较于上一代产品 H100，H200 在性能上实现了近一倍的提升，内存容量翻倍，带宽也显著增加。&lt;/p&gt;

&lt;p&gt;据英伟达称，H200 被冠以当世之最的芯片的称号。不过，根据发布的信息来看，H200 Tensor Core GPU 并没有让人感到意外。在 2023 年 8 月 30 日，英伟达就发布了搭载 HBM3e 技术的 GH200 Grace Hopper 的消息，而 HBM3e 也是 H200 芯片的升级重点。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/028c6a53-2749-4423-b15f-539ae5f8fc59.png!large" title="" alt=""&gt;&lt;/p&gt;
&lt;h2 id="HBM3E——H200升级重点"&gt;HBM3E——H200 升级重点&lt;/h2&gt;
&lt;p&gt;NVIDIA H200 是首款提供 HBM3e 的 GPU，HBM3e 是更快、更大的内存，可加速生成式 AI 和大型语言模型，同时推进 HPC 工作负载的科学计算。借助 HBM3e，NVIDIA H200 的显存带宽可以达到 4.8TB/秒，并提供 141GB 的内存。相较于 H100，H200 在吞吐量、能效比和内存带宽等方面均有所提升。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/27f6ec8b-9821-4e83-8d8e-adbfda148c91.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;HBM3E 到底是什么技术，让 H200 有了如此大的提升？接下来我们就来详细了解下 HBM3E。&lt;/p&gt;

&lt;p&gt;HBM3E（High Bandwidth Memory 3E）是最新一代的高带宽内存技术，它是 HBM（High Bandwidth Memory）系列的进一步改进和升级版本。HBM3E 在速度和容量方面都有显著提升，旨在满足处理大规模数据和高性能计算的需求。&lt;/p&gt;

&lt;p&gt;相较于 HBM，HBM3E 内存具有更快的数据传输速度，可实现更高的带宽。同时，HBM3E 可以提供更高密度的内存芯片，从而使系统能够拥有更大的内存容量。这非常有利于大型数据集和复杂计算任务。&lt;/p&gt;

&lt;p&gt;在架构上，HBM3E 继续采用了堆叠式设计，将多个存储层叠加在一起，以实现更高的带宽和更低的能耗。相较于传统的内存技术，HBM3E 在给定带宽的情况下能够提供更高的能效。HBM3E 内存芯片的堆叠层数更多，从而实现更高的存储密度。这使得在相对较小的物理空间内实现更大的内存容量成为可能。&lt;/p&gt;

&lt;p&gt;HBM3E 的引入旨在满足处理大规模数据和高性能计算的需求，尤其适用于人工智能、机器学习、深度学习等领域。它提供了更高的带宽、更大的容量和更高的能效，能够加速数据处理和计算任务，推动各种应用的发展。&lt;/p&gt;

&lt;p&gt;HBM3E 不仅满足了用于 AI 的存储器所需的速度规格，而且在发热控制和客户使用便利性等各个方面达到了全球最高水平。在速度方面，它能够每秒处理 1.15TB 的数据，相当于在 1 秒内可以处理 230 部全高清（FHD）级别的电影（每部 5GB）。通过使用即将推出的 HBM3E 内存，NVIDIA 将能够提供在内存带宽受限的工作负载中具有更好实际性能的加速器，同时也能够处理更大的工作负载。在 2023 年 8 月份，我们就看到 NVIDIA 计划发布配备 HBM3 的 Grace Hopper GH200 超级芯片版本。这次 NVIDIA 宣布的 H200，其实就是配备 HBM3E 内存的独立 H100 加速器的更新版本。&lt;/p&gt;
&lt;h2 id="H200 VS H100"&gt;H200 VS H100&lt;/h2&gt;
&lt;p&gt;接下来我们就来具体看看，相较于 H100，H200 的性能提升到底体现在哪些地方。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/ad20f73a-7229-4dcc-927b-aba00f1a5838.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;△ H200 的相关参数&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/a0d7736a-c6de-423b-b75f-d370ecf883d5.png!large" title="" alt=""&gt;&lt;/p&gt;
&lt;h3 id="性能计算"&gt;性能计算&lt;/h3&gt;
&lt;p&gt;H200 具备超过 460 万亿次的浮点运算能力，可支持大规模的 AI 模型训练和复杂计算任务。HGX H200 采用了 NVIDIA NVLink 和 NVSwitch 高速互连技术，为各种应用工作负载提供最高性能，包括对超过 1750 亿个参数的最大模型进行的 LLM 训练和推理。借助 HBM3e 技术的支持，H200 能够显著提升性能。&lt;/p&gt;

&lt;p&gt;在 HBM3e 的加持下，H200 能够将 Llama-70B 推理性能提升近两倍，并将运行 GPT3-175B 模型的性能提高了 60%。对于具有 700 亿参数的 Llama 2 大模型，H200 的推理速度比 H100 快一倍，并且推理能耗降低了一半。此外，H200 在 Llama 2 和 GPT-3.5 大模型上的输出速度分别是 H100 的 1.9 倍和 1.6 倍。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/e4ff7f55-1cdd-4385-9391-778b783b2008.png!large" title="" alt=""&gt;&lt;/p&gt;
&lt;h3 id="高速内存"&gt;高速内存&lt;/h3&gt;
&lt;p&gt;NVIDIA 的 H200 芯片支持高达 48GB 的 GDDR6X 内存，其内存带宽可达 936GB/s，有效提高了数据传输速度并降低了延迟。同时，借助 HBM3e 技术，NVIDIA H200 每秒可以提供 4.8TB 的内存容量和 141GB 的内存带宽。对比 H100 的 SXM 版本，显存从 80GB 提升 76%，带宽从每秒 3.35TB 提升了 43%。&lt;/p&gt;

&lt;p&gt;内存带宽对于高性能计算（HPC）应用程序非常重要，因为它可以实现更快的数据传输，减少复杂处理过程中的瓶颈。对于模拟、科学研究和人工智能等内存密集型 HPC 应用，H200 的更高内存带宽可以确保高效地访问和操作数据。与传统的 CPU 相比，使用 H200 芯片可以将获取结果的时间加速多达 110 倍。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/08ce75a7-8b1f-4719-903a-5fc0f1b60de8.png!large" title="" alt=""&gt;&lt;/p&gt;
&lt;h3 id="硬件加速"&gt;硬件加速&lt;/h3&gt;
&lt;p&gt;H200 是一款内置了强大的 AI 加速器的芯片，它能显著提高神经网络的训练和推理速度。该芯片采用了先进的 7 纳米制程工艺，拥有超过 1000 亿个晶体管，整个芯片的面积达到 1526 平方毫米。&lt;/p&gt;

&lt;p&gt;NVIDIA H200 芯片将应用于具有四路和八路配置的 NVIDIA HGX H200 服务器主板，这些主板与 HGX H100 系统的硬件和软件兼容。H200 芯片还可用于采用 HBM3e 内存的 NVIDIA GH200 Grace Hopper 超级芯片。八路配置的 HGX H200 主板提供超过 32 petaflops 的 FP8 深度学习计算能力和 1.1TB 的聚合高带宽内存。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/3e407f0b-ccde-4145-8dca-73717bea1741.png!large" title="" alt=""&gt;&lt;/p&gt;
&lt;h3 id="能源效率"&gt;能源效率&lt;/h3&gt;
&lt;p&gt;H200 芯片采用先进的散热技术，以确保在高性能计算的同时保持较低的功耗。这使得 H200 在功耗配置与 H100 相当。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/3f7b45b9-249c-4939-bf5d-e764e079cb7e.png!large" title="" alt=""&gt;&lt;/p&gt;
&lt;h3 id="训练能力"&gt;训练能力&lt;/h3&gt;
&lt;p&gt;在之前用于评估 AI 芯片性能的一个重要指标——训练能力方面，H200 并没有明显的提升。根据英伟达提供的数据，对于 GPT-3 175B 大模型的训练任务而言，H200 只比 H100 强 10%。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/193fe852-56fd-40d6-b5a9-c1d372f673e9.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;H200 和 H100 芯片都基于英伟达的 Hopper 架构开发，因此这两款芯片是相互兼容的。对于已经使用 H100 的企业来说，无需进行任何调整，可以直接进行更换。此外，就峰值算力而言，H100 和 H200 实际上是相同的，它们的 FP64 矢量计算能力为 33.5TFlops，FP64 张量计算能力为 66.9TFlops，提升的参数主要是显存容量和内存带宽。&lt;/p&gt;

&lt;p&gt;聊了这么多，相信大家对英伟达新推出的 H200 有了一定了解。近期，又拍云与厚德云联合推出了全新的 GPU 产品，新用户注册即可免费体验 RTX4090 GPU。您可以通过一键搭建 CUDA、Stable Diffusion 等开发环境，轻松快捷地体验强大的 GPU 算力，有兴趣的同学赶紧来体验下吧。&lt;/p&gt;

&lt;p&gt;传送门：&lt;a href="https://www.houdeyun.cn/" rel="nofollow" target="_blank"&gt;https://www.houdeyun.cn/&lt;/a&gt;&lt;/p&gt;</description>
      <author>upyun</author>
      <pubDate>Wed, 24 Jan 2024 14:26:11 +0800</pubDate>
      <link>https://ruby-china.org/topics/43566</link>
      <guid>https://ruby-china.org/topics/43566</guid>
    </item>
    <item>
      <title>深入了解浮点运算——CPU 和 GPU 算力是如何计算的</title>
      <description>&lt;p&gt;随着国家大力发展数字经济，算力的提升和普惠变得越来越重要。在数字化时代，算力已成为推动科技发展和创新的关键要素。它不仅仅是衡量计算机处理速度的标准，还涉及计算机系统或设备执行计算任务的能力、数据处理能力以及解决复杂计算问题的能力。那么算力到底是什么呢？&lt;/p&gt;
&lt;h2 id="简单了解算力"&gt;简单了解算力&lt;/h2&gt;
&lt;p&gt;算力（Computational Power）在计算机科学和计算领域中是一个重要概念，它指的是计算机系统或设备执行数值计算和处理任务的能力。提升算力意味着可以更快地执行复杂的计算任务，从而提高计算的效率和性能。简单来说，算力决定了计算机处理信息的速度和效率，直接影响我们使用电子设备的体验，例如网页加载速度和游戏流畅度等。&lt;/p&gt;

&lt;p&gt;在数字经济时代，算力是新的生产力，为加强数字政府建设、激活数据要素潜能以及实现各行各业的数字化转型提供了动力。据中国信息通信研究所的测算，每投入 1 元的算力，可以带动 3 至 4 元的经济产出。算力的提升对经济具有巨大的影响力。根据统计数据显示，每提高一个算力指数点，可以带动数字经济增长 0.36% 和 GDP 增长 0.17%。&lt;/p&gt;

&lt;p&gt;那算力大小具体是如何衡量的呢？这里就必须提及浮点运算，接下来我们来了解下浮点运算这个概念。&lt;/p&gt;
&lt;h2 id="什么是浮点运算"&gt;什么是浮点运算&lt;/h2&gt;
&lt;p&gt;算力最基本的计量单位是 FLOPS，英文 Floating-point Operations Per Second，即每秒执行的浮点运算次数。浮点运算其实就是带小数的加减乘除运算。&lt;/p&gt;

&lt;p&gt;举个例子：1.1+2.2 就是典型的浮点运算，估计你已经心算出结果是 3.3 了。不过对计算机来说，这个问题并不简单。我们知道，计算机是以 0 和 1 构成的二进制数字进行运算的，比如在基础的二进制里，1 就是 1，2 就变成了“10”，3 是“11”，这也带来一个问题：计算机能够处理的数字只有整数。其实，0.1 可以看成是 1 除以 10 的结果，我们想让计算机计算一个带小数点的数字，只要告诉 CPU 这是一个被 1 后面加了多少个 0 整除的整数就行了。这样一来，计算机在处理小数点的时候，就多了好几个运算步骤。浮点运算的速度也就成了衡量计算机性能的标准。&lt;/p&gt;

&lt;p&gt;算力的计量单位，除了 FLOPS，从小到大还有：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  KFLOPS（每秒 1000 次浮点运算，10^3）&lt;/li&gt;
&lt;li&gt;  MFLOPS（每秒 1 百万次，10^6）&lt;/li&gt;
&lt;li&gt;  GFLOPS（每秒 10 亿次，10^9）&lt;/li&gt;
&lt;li&gt;  TFLOPS（每秒 1 万亿次，10^12）&lt;/li&gt;
&lt;li&gt;  PFLOPS（每秒 1000 万亿次，10^15）&lt;/li&gt;
&lt;li&gt;  EFLOPS（每秒 100 亿亿次，10^18）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="浮点数"&gt;浮点数&lt;/h3&gt;
&lt;p&gt;浮点数的浮点就是指它的小数点的位置是可以是漂浮不定的。这怎么理解呢？其实，浮点数是采用科学计数法的方式来表示的，例如十进制小数 1.234，用科学计数法表示，可以有多种方式：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1.234 = 1.234 * 10^0
1.234 = 12.34 * 10^-1
1.234 = 123.4 * 10^-2
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;用这种科学计数法的方式表示小数时，小数点的位置就变得漂浮不定了。使用同样的规则，对于二进制数，我们也可以用科学计数法表示，也就是说把基数 10 换成 2 即可。那浮点数如何表示数字？其实浮点数是采用科学计数法来表示一个数字的，它的格式可以写成这样：&lt;/p&gt;

&lt;p&gt;V = (-1)^S * M * R^E&lt;/p&gt;

&lt;p&gt;其中各个变量的含义如下：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  S：符号位，取值 0 或 1，决定一个数字的符号，0 表示正，1 表示负&lt;/li&gt;
&lt;li&gt;  M：尾数，用小数表示，例如前面所看到的 1.234 * 10^0，1.234 就是尾数&lt;/li&gt;
&lt;li&gt;  R：基数，表示十进制数 R 就是 10，表示二进制数 R 就是 2&lt;/li&gt;
&lt;li&gt;  E：指数，用整数表示，例如前面看到的 10^-1，-1 即是指数&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;如果我们要在计算机中，用浮点数表示一个数字，只需要确认这几个变量即可。&lt;/p&gt;

&lt;p&gt;举个例子：将十进制数 0.125 转换为浮点数，我们可以使用二进制浮点数表示。&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; 符号位（S）：由于数字为正数，所以 S = 0。&lt;/li&gt;
&lt;li&gt; 尾数（M）：将小数部分转换为二进制。0.125 的二进制表示为 0.001。&lt;/li&gt;
&lt;li&gt; 基数（R）：对于二进制数，R = 2。&lt;/li&gt;
&lt;li&gt; 指数（E）：确定指数的值。将 0.125 转换为科学计数法形式可得 0.125 = 1.0 * 2^-3。因此，指数 E = -3。&lt;/li&gt;
&lt;li&gt; 代入公式：V = (-1)^S * M * R^E&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;将以上值代入公式可得：&lt;/p&gt;

&lt;p&gt;V = (-1)^0 * 0.001 * 2^-3 = 0.001 * 0.125&lt;/p&gt;

&lt;p&gt;运算结果为 0.000001。因此十进制数 0.125 在二进制浮点数表示下为 0.000001。&lt;/p&gt;

&lt;p&gt;计算机中使用有限的连续字节来保存浮点数，而 IEEE 754 标准定义了三种常见的浮点数格式：单精度、双精度和扩展双精度，它们适用于不同的计算需求。一般来说，单精度适合一般计算，双精度适合科学计算，扩展双精度适合高精度计算。一个遵循 IEEE 754 标准的系统必须支持单精度类型（强制类型），最好也支持双精度类型（推荐类型），而扩展双精度类型则是可选的。&lt;/p&gt;
&lt;h3 id="单精度浮点数（FP32）"&gt;单精度浮点数（FP32）&lt;/h3&gt;
&lt;p&gt;单精度浮点数格式（英语：single-precision floating-point format）是一种数据类型，在计算机存储器中占用 4 个字节（32 bits），利用“浮点”（浮动小数点）的方法，可以表示一个范围很大的数值。在 IEEE 754-2008 的定义中，32-bit base 2 格式被正式称为 binary32 格式。这种格式在 IEEE 754-1985 被定义为 single，即单精度。需要注意的是，在更早的一些计算机系统中，也存在着其他 4 字节的浮点数格式。&lt;/p&gt;

&lt;p&gt;第 1 位表示正负，中间 8 位表示指数，后 23 位储存有效数位（有效数位是 24 位）。第一位的正负号 0 代表正，1 代表负。中间八位共可表示 2^8 = 256 个数，指数可以是二补码；或 0 到 255，0 到 126 代表 -127 到 -1，127 代表零，128-255 代表 1-128。有效数位最左手边的 1 并不会储存，因为它一定存在（二进制的第一个有效数字必定是 1）。换言之，有效数位是 24 位，实际储存 23 位。&lt;/p&gt;

&lt;p&gt;举个例子：要将十进制数 0.125 转换为单精度浮点数（32 位）。&lt;/p&gt;

&lt;p&gt;遵循 IEEE 754 标准的表示方法，可以按照以下步骤进行转换：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; 符号位（Sign）：由于数字为正数，所以符号位为 0。&lt;/li&gt;
&lt;li&gt; 尾数（Fraction）：将小数部分转换为二进制。0.125 的二进制表示为 0.001。&lt;/li&gt;
&lt;li&gt; 指数（Exponent）：指数的偏移量为 127。由于 0.125 可以表示为 1.0 × 2^(-3)，指数为 -3。加上偏移量后，实际指数为 -3 + 127 = 124。将 124 转换为二进制得到 01111100。&lt;/li&gt;
&lt;li&gt; 组合位：将符号位、指数位和尾数位组合在一起，得到单精度浮点数的二进制表示。&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;最终的二进制表示为：0 01111100 00100000000000000000000&lt;/p&gt;
&lt;h3 id="双精度浮点数（FP64）"&gt;双精度浮点数（FP64）&lt;/h3&gt;
&lt;p&gt;双精度浮点数（Double Precision Floating Point），也称为 FP64，是一种浮点数数据类型，用于在计算机中表示和进行高精度的浮点数运算。FP64 使用 64 个比特位（8 个字节）来表示一个浮点数，其中 1 位用于表示符号位（正负号），11 位用于表示指数，52 位用于表示尾数。&lt;/p&gt;

&lt;p&gt;双精度浮点数的表示形式同样采用科学计数法，即 ±M × 2^E，其中 M 为尾数，E 为指数。通过使用更多的指数位和尾数位，FP64 相对于单精度浮点数能够表示更广范围和更高精度的数值。&lt;/p&gt;

&lt;p&gt;举个例子：将十进制数 0.125 转换为双精度浮点数（64 位）。&lt;/p&gt;

&lt;p&gt;遵循 IEEE 754 标准的表示方法，可以按照以下步骤进行转换：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; 符号位（Sign）：由于数字为正数，所以符号位为 0。&lt;/li&gt;
&lt;li&gt; 尾数（Fraction）：将小数部分转换为二进制。0.125 的二进制表示为 0.001。&lt;/li&gt;
&lt;li&gt; 指数（Exponent）：指数的偏移量为 1023。由于 0.125 可以表示为 1.0 × 2^(-3)，指数为 -3。加上偏移量后，实际指数为 -3 + 1023 = 1020。将 1020 转换为二进制得到 01111111100。&lt;/li&gt;
&lt;li&gt; 组合位：将符号位、指数位和尾数位组合在一起，得到双精度浮点数的二进制表示。&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;最终的二进制表示为：0 01111111100 0010000000000000000000000000000000000000000000000000&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/e3311cad-f555-4652-82af-d3e3d662ea3a.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;双精度浮点数的取值范围约为 ±4.9 × 10^-324 到 ±1.8 × 10^308，并提供大约 15 到 16 位有效数字的精度。相比于单精度浮点数，双精度浮点数能够处理更大范围的数值和提供更高的精度，适用于对精确性要求较高的计算任务。&lt;/p&gt;

&lt;p&gt;双精度浮点数常用于科学计算、工程应用、金融分析和高性能计算等领域。它在这些领域中被广泛用于处理实数数据，如数值模拟、大规模计算、天文学、物理学和工程计算等。&lt;/p&gt;

&lt;p&gt;然而，需要注意的是，双精度浮点数的存储空间和计算开销相对于单精度浮点数更高。在某些情况下，如果对精度要求不高或者计算资源有限，可以考虑使用单精度浮点数进行计算，以提高计算效率和节省内存消耗。&lt;/p&gt;
&lt;h3 id="浮点数的舍入"&gt;浮点数的舍入&lt;/h3&gt;
&lt;p&gt;由于浮点数计算过程中丢失了精度，浮点运算的性质与数学运算有所不同。任何有效数上的运算结果，通常都存放在较长的寄存器中，当结果被放回浮点格式时，必须将多出来的比特丢弃。IEEE 标准列出 4 种不同的方法：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  舍入到最接近：舍入到最接近，在一样接近的情况下偶数优先（Ties To Even，这是默认的舍入方式）：会将结果舍入为最接近且可以表示的值，但是当存在两个数一样接近的时候，则取其中的偶数（在二进制中是以 0 结尾的）。&lt;/li&gt;
&lt;li&gt;  朝 +∞ 方向舍入：会将结果朝正无限大的方向舍入。&lt;/li&gt;
&lt;li&gt;  朝 -∞ 方向舍入：会将结果朝负无限大的方向舍入。&lt;/li&gt;
&lt;li&gt;  朝 0 方向舍入：会将结果朝 0 的方向舍入。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="单、双精度的应用场景"&gt;单、双精度的应用场景&lt;/h2&gt;
&lt;p&gt;单精度浮点数通常应用在需要较高计算速度的场景，例如嵌入式系统和移动设备。在这些应用中，对于一些实时性要求较高的任务，如图形渲染、音视频处理等，单精度浮点数能够提供足够的精度，并且在存储和计算上更加高效，能够满足实时性和资源限制的需求。此外，单精度浮点数也广泛应用于科学研究和工程领域中的数值计算，包括求解方程、模拟物理过程等。在这些领域中，单精度浮点数的精度已经足够满足大部分的计算需求，同时可以提高计算速度和节省存储空间。&lt;/p&gt;

&lt;p&gt;双精度浮点数主要应用于需要更高精度的场景，如科学计算、工程计算、金融分析等。在这些领域中，对计算结果的精确性要求较高，需要更多的有效数字来表示和处理实数。双精度浮点数能够提供更高的精度和更大的表示范围，能够处理更复杂和精细的计算任务。在科学计算中，如天文学、数值模拟等领域，双精度浮点数常常用于求解复杂的数学模型和算法，以获得更准确的结果。在金融分析中，双精度浮点数可以处理更大的数值范围和更高的精度，确保计算结果的准确性和可靠性。&lt;/p&gt;

&lt;p&gt;总之，选择单精度还是双精度浮点数应根据具体应用的需求来决定，需要权衡计算速度、精度要求和资源限制等因素。单精度浮点数适用于对计算速度要求较高且精度要求不是特别严格的场景，而双精度浮点数适用于对精度要求更高的科学计算和工程领域。&lt;/p&gt;
&lt;h2 id="CPU 和 GPU 的算力计算"&gt;CPU 和 GPU 的算力计算&lt;/h2&gt;
&lt;p&gt;目前服务器的算力主要包括 CPU 和 GPU 等不同芯片产生的算力。那具体到每台服务器的算力，究竟如何计算呢？&lt;/p&gt;
&lt;h3 id="CPU 的算力计算"&gt;CPU 的算力计算&lt;/h3&gt;
&lt;p&gt;我们以 CPU 的双精度浮点运算能力（FP64）为例，单个 CPU 的算力，与 CPU 核心的个数、频率、单时钟周期浮点计算能力 3 个因素有关。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;单 CPU 算力 = CPU 核数 * 单核主频 * 单周期浮点计算能力&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;以 Intel Cascade Lake 架构的 Xeon Platinum 8280 为例，该 CPU 具有 28 个核心，主频为 2.7GHz，并支持 AVX512 指令集。根据提供的信息，我们可以计算出该 CPU 的双精度浮点运算能力（FP64）。&lt;/p&gt;

&lt;p&gt;首先，计算单个 CPU 核心的单周期浮点计算能力：&lt;/p&gt;

&lt;p&gt;单周期浮点计算能力 = 512bit * 2FMA * 2M/A / 64bit = 32 FLOPS/Cycle&lt;/p&gt;

&lt;p&gt;然后，计算单个 CPU 核心的峰值浮点运算能力：&lt;/p&gt;

&lt;p&gt;单个 CPU 核心的峰值浮点运算能力 = 单周期浮点计算能力 * 主频 = 32 FLOPS/Cycle * 2.7 GHz&lt;/p&gt;

&lt;p&gt;最后，计算整个 CPU 的峰值浮点运算能力：&lt;/p&gt;

&lt;p&gt;单 CPU 算力 = CPU 核数 * 单个 CPU 核心的峰值浮点运算能力 = 28 cores * 单个 CPU 核心的峰值浮点运算能力&lt;/p&gt;

&lt;p&gt;根据提供的数据，计算得到：&lt;/p&gt;

&lt;p&gt;单个 CPU 核心的峰值浮点运算能力 = 32 FLOPS/Cycle * 2.7 GHz = 86.4 GFLOPS&lt;/p&gt;

&lt;p&gt;单 CPU 算力 = 28 cores * 86.4 GFLOPS = 2.4192 TFLOPS&lt;/p&gt;

&lt;p&gt;因此，以 Intel Cascade Lake 架构的 Xeon Platinum 8280 为例，该 CPU 的理论峰值双精度浮点性能为 2.4192 TFLOPS。&lt;/p&gt;

&lt;p&gt;注：该计算是理论值，实际性能可能受到多种因素（如指令级并行性、内存访问延迟等）的影响。&lt;/p&gt;
&lt;h3 id="GPU 的算力计算"&gt;GPU 的算力计算&lt;/h3&gt;
&lt;p&gt;GPU 的算力与上面的计算方法类似。单个 GPU 算力也是与核心个数、频率、单时钟周期能力 3 个因素有关。&lt;/p&gt;

&lt;p&gt;以 NVIDIA Volta 架构的 V100 为例，该 GPU 拥有 2560 个双精度浮点核心（FP64 cores），主频为 1.530GHz。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/1a483d9f-3f83-4fab-90a0-bd77c6f2ea6b.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;根据提供的信息，我们可以计算出该 GPU 的双精度浮点运算能力（FP64）。&lt;/p&gt;

&lt;p&gt;首先，计算单个 GPU 核心的单周期浮点计算能力：&lt;/p&gt;

&lt;p&gt;单周期浮点计算能力 = 64bit * 1FMA * 2M/A / 64bit = 2 FLOPS/Cycle&lt;/p&gt;

&lt;p&gt;然后，计算单个 GPU 核心的峰值浮点运算能力：&lt;/p&gt;

&lt;p&gt;单个 GPU 核心的峰值浮点运算能力 = 单周期浮点计算能力 * 主频 = 2 FLOPS/Cycle * 1.530 GHz&lt;/p&gt;

&lt;p&gt;最后，计算整个 GPU 的峰值浮点运算能力：&lt;/p&gt;

&lt;p&gt;单 GPU 算力 = GPU 核数 * 单个 GPU 核心的峰值浮点运算能力 = 2560 cores * 单个 GPU 核心的峰值浮点运算能力&lt;/p&gt;

&lt;p&gt;根据提供的数据，计算得到：&lt;/p&gt;

&lt;p&gt;单个 GPU 核心的峰值浮点运算能力 = 2 FLOPS/Cycle * 1.530 GHz = 3.060 GFLOPS&lt;/p&gt;

&lt;p&gt;单 GPU 算力 = 2560 cores * 3.060 GFLOPS = 7833 GFLOPS = 7.833 TFLOPS&lt;/p&gt;

&lt;p&gt;因此，以 NVIDIA Volta 架构的 V100 为例，该 GPU 的理论峰值双精度浮点性能为 7.833 TFLOPS。&lt;/p&gt;

&lt;p&gt;注：该计算是理论值，实际性能可能受到多种因素（如内存带宽、功耗限制等）的影响。&lt;/p&gt;

&lt;p&gt;聊了这么多，相信大家对 CPU、GPU 的算力计算和浮点运算都有了一定的了解，虽然看起来比较复杂，其实还是比较好理解的。大家也可以收藏下这篇内容，以备不时之需。&lt;/p&gt;

&lt;p&gt;近期，又拍云与厚德云联合推出了全新的 GPU 产品，新用户注册即可免费体验 RTX4090 GPU。您可以通过一键搭建 CUDA、Stable Diffusio n 等开发环境，轻松快捷地体验强大的 GPU 算力，有兴趣的同学&lt;strong&gt;点击阅读原文&lt;/strong&gt;即可&lt;strong&gt;免费体验 RTX4090 GPU&lt;/strong&gt;。&lt;/p&gt;

&lt;p&gt;传送门：&lt;/p&gt;

&lt;p&gt;&lt;a href="https://link.zhihu.com/?target=https%3A//www.houdeyun.cn/" rel="nofollow" target="_blank" title=""&gt;RTX4090 GPU 免费体验&lt;/a&gt;&lt;/p&gt;</description>
      <author>upyun</author>
      <pubDate>Wed, 17 Jan 2024 14:58:40 +0800</pubDate>
      <link>https://ruby-china.org/topics/43555</link>
      <guid>https://ruby-china.org/topics/43555</guid>
    </item>
    <item>
      <title>加速计算，为何会成为 AI 时代的计算力“新宠”</title>
      <description>&lt;p&gt;随着科技的发展，处理大量数据和进行复杂计算的需求越来越高，人工智能、大数据和物联网等领域更是如此，传统的计算方式已经无法满足这些需求。因此，加速计算作为一种现代计算方式，成了必要的手段。加速计算具有前所未有的处理能力，在云基础设施中发挥着核心作用，因为它有助于更高效、更有效地管理数据中心的海量信息。此外，加速计算还能提供必要的计算能力和内存，以便更高效地训练和实施 GPT-4 等高级生成式人工智能模型。这种能力可加快训练时间、处理大型数据集和开发日益复杂的模型。&lt;/p&gt;

&lt;p&gt;加速计算利用 GPU、ASIC、TPU 和 FPGA 等专用硬件来执行比 CPU 更高效的计算，从而提高速度和性能。它尤其适用于可并行化的任务，如高性能计算、深度学习、机器学习和人工智能。&lt;/p&gt;

&lt;p&gt;加速计算发展迅速，各种硬件和软件解决方案如 GPU、ASIC、TPU、FPGA、CUDA、OpenCL 和网络技术层出不穷。下面我们来深入了解一下加速计算，就能明白为何它会成为 AI 时代的计算力“新宠”。&lt;/p&gt;
&lt;h2 id="什么是加速计算"&gt;什么是加速计算&lt;/h2&gt;
&lt;p&gt;加速计算是指使用专用硬件来执行某些类型的计算，其效率要比仅使用通用中央处理器（CPU）高。利用图形处理单元（GPU）、专用集成电路（ASIC）（包括张量处理单元（TPU））和现场可编程逻辑门阵列（FPGA）等设备的强大功能，以更高的速度执行计算，从而加速计算过程，一般我们也将这些设备称之为加速器。&lt;/p&gt;

&lt;p&gt;这些加速器尤其适用于可被分解为较小并行任务的项目，如高性能计算 (HPC)、深度学习、机器学习、人工智能和大数据分析。通过将指定类型的工作分派到这些专用加速计算硬件上，大大提高了系统的性能和效率。&lt;/p&gt;

&lt;p&gt;加速计算因其高效处理海量数据的能力，从而推动了机器学习、AI、实时分析和科学研究的进步。加速计算在图形、游戏、边缘计算和云计算领域的影响力与日俱增，是数据中心等数字基础设施的骨干力量。随着对更强大应用和系统的需求日益增长，传统的 CPU 方法难以与加速计算竞争，而加速计算可提供更快、更具成本效益的性能升级。&lt;/p&gt;
&lt;h2 id="加速计算解决方案"&gt;加速计算解决方案&lt;/h2&gt;
&lt;p&gt;加速计算解决方案涉及硬件、软件和网络的结合。这些解决方案专门用于提高复杂计算任务的速度和效率。&lt;/p&gt;
&lt;h3 id="硬件"&gt;硬件&lt;/h3&gt;
&lt;p&gt;硬件加速器是加速计算的基础，这些加速器包括图形处理器 (GPU)、专用集成电路 (ASIC) 和现场可编程门阵列 (FPGA)。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/3ac21448-06c3-496b-8254-d5b8bd2d4ccd.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GPU&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;图形处理器（GPU）广泛用于各种计算密集型任务，其优势在于可以同时执行许多复杂的计算，因此非常适合高性能计算（HPC）和机器学习中的神经网络训练等任务。&lt;/p&gt;

&lt;p&gt;英伟达公司数据中心和计算密集型任务（机器学习、人工智能）的 GPU 市场上处于领先地位。该公司用于数据中心的主要 GPU 架构包括 Hopper (H100) 和 Ampere (A100)。值得一提的是，H100 GPU 非常适合加速涉及大型语言模型 (LLM)、深度推荐系统、基因学和复杂数字孪生的应用。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;应用型专用集成电路 ASIC&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;应用型专用集成电路（ASIC）是为执行特定任务而设计的定制芯片，与 CPU 不同，CPU 可处理各种应用。由于专用集成电路是为特定功能定制的，因此执行任务的效率比 CPU 更高，在速度、功耗和整体性能方面都具有优势。&lt;/p&gt;

&lt;p&gt;我们常常在科技文章中看到的神经处理单元（NPU）和深度学习处理器（DLP）就是 ASIC 中的一员，还有谷歌的张量处理单元（TPU）也是 ASIC 下的一员猛将。TPU 专为加速机器学习工作荷载而设计，它们被广泛应用于语言翻译、谷歌助手中的语音识别和智能化广告排名等项目中。&lt;/p&gt;

&lt;p&gt;现场可编程逻辑门阵列 FPGA&lt;/p&gt;

&lt;p&gt;现场可编程逻辑门阵列（FPGA）是一种半导体集成电路，与 CPU 相比，FPGA 可重新编程以便能更高效地执行特定任务。与 ASIC、GPU 和 CPU 的固定架构不同，FPGA 硬件包括可配置逻辑块和可编程互连。这样，即使在芯片出厂和部署后，也可以进行功能更新。&lt;/p&gt;

&lt;p&gt;FPGA 凭借其灵活性和并行计算能力，在数据中心的高性能计算、AI、机器学习中越来越受欢迎。不过，与 GPU 和定制 ASIC 解决方案相比，FPGA 的开发速度较慢，其软件生态系统目前也不够健全，由于其编程复杂，专业工程师的数量也很有限。&lt;/p&gt;
&lt;h3 id="软件"&gt;软件&lt;/h3&gt;
&lt;p&gt;加速计算利用应用编程接口（API）和编程模型（如 CUDA 和 OpenCL）来连接软件和硬件。这样可以优化数据流，从而提高性能、能效、成本效益和准确性。开发人员通过 API 和编程模型，就能够编写在 GPU 上运行的代码，并利用软件程序库实现高效算法。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CUDA&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;CUDA（全称为 Compute Unified Device Architecture，统一计算架构）是英伟达公司开发的专有并行计算平台和 API 模型，通过这个技术，开发者可利用英伟达的 GPU 进行图像处理之外的运算，显著加速计算任务。该平台包括 cuDNN、TensorRT 和 DeepStream 等深度学习库，可增强人工智能训练和推理任务。&lt;/p&gt;

&lt;p&gt;自 2006 年推出以来，CUDA 已被下载 4000 万次，在全球拥有 400 万开发者用户群，已形成了一个庞大的开发者社区，因此英伟达公司在数据中心硬件和软件市场上占据了显著优势。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OpenCL&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;OpenCL（Open Computing Language，开放计算语言）是一个为异构平台编写程序的框架。OpenCL 的一个特别显著的特点是它在不同硬件类型之间的可移植性，平台可由 CPU、GPU、FPGA 或其他类型的处理器与硬件加速器所组成。其广泛的兼容性使开发人员能够利用这些不同硬件的强大功能，来进行加速计算。&lt;/p&gt;
&lt;h3 id="网络"&gt;网络&lt;/h3&gt;
&lt;p&gt;网络在加速计算中发挥着至关重要的作用，因为它有助于成千上万个处理单元和内存以及存储设备之间的通信。各种网络技术被用来实现这些计算设备与系统其他设备之间的通信，并在网络内的多个设备之间共享数据。常见的技术有：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  PCI Express（PCIe）：PCIe 是计算机总线的一个重要分支，它沿用既有的 PCI 编程概念及信号标准，并且构建了更加高速的串行通信系统标准。这一标准提供了计算设备与 CPU、内存之间的直接连接。在加速计算中，PCIe 通常用于将 GPU 或其他加速器连接到主机系统。&lt;/li&gt;
&lt;li&gt;  NVLink：英伟达公司专有的高带宽、高能效互连技术，可提供比 PCIe 高得多的带宽。该技术旨在促进 GPU 之间以及 GPU 与 CPU 之间更高效的数据共享。&lt;/li&gt;
&lt;li&gt;  Infinity Fabric：AMD 公司专有的互连技术，用于连接其芯片中的各种组件，包括 CPU、GPU 和内存。&lt;/li&gt;
&lt;li&gt;  Compute Express Link (CXL)：CXL 是一种开放式互连标准，有助于减少 CPU 和加速器之间的延迟同时增加带宽。它将多个接口合并为一个 PCIe 接口，连接到 CPU。&lt;/li&gt;
&lt;li&gt;  InfiniBand：一种高速、低延迟的互连技术，通常用于高性能计算（HPC）设置。它实现了服务器集群和存储设备之间的高速互连。&lt;/li&gt;
&lt;li&gt;  以太网：应用最广泛最成熟的网络技术，主要用于在数据中心的服务器之间传输大量数据。但是，它无法提供与 NVLink 或 InfiniBand 相同的性能水平。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/165157e0-3736-44c9-86ce-a6c58d4dd453.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;△ NVLink 和 PCIe 与 CPU 连接的 GPU 架构&lt;/p&gt;
&lt;h2 id="加速计算应用场景"&gt;加速计算应用场景&lt;/h2&gt;&lt;h3 id="生成式AI"&gt;生成式 AI&lt;/h3&gt;
&lt;p&gt;加速计算是开发和实施先进的生成式 AI 模型的关键因素。生成式 AI 涉及使用算法来统计特征上与训练集相似的数据，在图像、文本和语音领域都有广泛应用。&lt;/p&gt;

&lt;p&gt;在生成式 AI 领域，会用到生成对抗网络（GANs）、变异自动编码器（VAEs）和变换器（Transformers）等模型，还有包括 OpenAI 的 ChatGPT 的大型语言模型（LLMs）。这些模型所涉及到的复杂数学运算，需要在大型数据集上进行训练，并需要大量的计算能力和内存。更具体地说，模型大小、每层复杂度、序列长度和多样化是计算需求日益增加的最主要因素。&lt;/p&gt;

&lt;p&gt;加速计算在解决生成式 AI 的计算能力和内存需求方面发挥着至关重要的作用，其主要作用在加快训练时间、处理大型数据集、支持复杂模型、促进实时生成并保障高效梯度计算。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;加快训练时间&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;加速计算在生成式 AI 中最重要的作用是缩短 GAN、VAE 和 Transformer 模型的训练时间。在基于 CPU 的传统架构上，这些模型的训练通常需要数天、数周甚至数月的时间，但 GPU 和 TPU 等加速计算平台是专为并行处理而设计的加速硬件，它们能够同时并行处理多个计算，从而大大缩短了训练时间。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;处理大型数据集&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;生成式 AI 模型通常在海量数据集上进行训练，与传统 CPU 相比，加速计算硬件可以更高效地处理这些大型数据集。此外，使用先进的内存架构（如某些 GPU 中的高带宽内存）可以在训练过程中高效处理这些大型数据集。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;创建复杂模型&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;加速计算所带来的计算能力的提升，可以创建更复杂、更大型的模型，从而获得更好的结果。例如，像 GPT-4 这样拥有 170 万亿个参数的生成型预训练变换模型，只有通过加速计算才能实现。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;实时功能&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;在某些应用中，人工智能模型需要实时（或接近实时）生成输出。这对于交互式应用（如视频游戏中的人工智能和实时翻译）尤为重要。加速计算可确保快速执行这些操作，从而实现实时功能。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;高效的计算梯度&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;深度学习模型通过使用基于梯度的优化技术（如反向传播）进行学习。这些计算方法以误差或损失函数最小化的方向来迭代调整模型参数。由于计算是基于矩阵的，因此具有很高的并行性，非常适合选用加速计算方案来处理。&lt;/p&gt;
&lt;h3 id="AI数据中心"&gt;AI 数据中心&lt;/h3&gt;
&lt;p&gt;加速计算平台的目的是加速各类数据中心的计算密集型工作，包括人工智能、数据分析、图形和科学计算。这些数据中心包括企业、主机托管、超大规模/云、边缘和模块化设施，其主要目标是提高工作负载性能，同时降低功耗和每次查询的成本。&lt;/p&gt;

&lt;p&gt;生成式 AI 和大型语言模型（LLM）在消费者、互联网公司、企业和初创公司中的兴起，使人工智能的应用进入了一个快速发展时刻，加速了数据中心和云平台中的 AI 推理部署。目前，大多数 AI 推理工作都部署在 CPU 和网络接口卡（NIC）上运行。然而，由于性能、能效、成本效益和功耗限制的日益增加，业界正在转向利用 GPU 和 ASIC 等专用硬件进行加速计算。&lt;/p&gt;

&lt;p&gt;现代数据中心的发展方向之一，就是建立一个可持续运行的 " AI 工厂"。通过 LLM、推荐系统以及最终的推理模型等人工智能模型，配备推理机群，以便支持各种各样的工作任务，例如视频处理、文本生成、图像生成以及虚拟世界和虚拟 3D 图形。&lt;/p&gt;
&lt;h2 id="使用GPU进行加速计算"&gt;使用 GPU 进行加速计算&lt;/h2&gt;
&lt;p&gt;使用 GPU 进行加速计算方法主要有三大类：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  使用商业套装软件&lt;/li&gt;
&lt;li&gt;  使用开源或官方函式库&lt;/li&gt;
&lt;li&gt;  自行编程 CUDA&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;第一项种类繁多，其中又以有限元素分析领域最多，此领域相关计算包含流体力学分析、热传导分析、电磁场分析或应力分析等等应用。由于范围涵盖 IC 设计、建筑设计、甚至许多交通工具或化工厂也需要通过这类软件进行模拟分析，所以开发这类软件有很大的商业价值。&lt;/p&gt;

&lt;p&gt;第二项则比较个性化，由开发者自行编写程序，GPU 的计算组件则可以引用他人已经准备好的函数库，或者参考英伟达官方提供的函数库，也可以从 GitHub 上进行搜索。&lt;/p&gt;

&lt;p&gt;第三项就必须通过编程语言进行 CUDA 编写，不同的编程语言能够操纵的自由度也各不相同，其中 C/C++ 或 Fortran 属于开发自由度最高的编程语言，可从底层控制 GPU 计算，甚至可以针对本机内存与 GPU 内存数据的传输进行优化。其次则为 Python，Python 也是目前市面上最主流的 AI 应用开发语言，实现的方式包括 PyCuda 或者使用 Numba 函数库。另外，Java、R、C# 等也都可以支持 CUDA。&lt;/p&gt;

&lt;p&gt;又拍云联合厚德云推出 GPU 产品，可方便快捷一键搭建 CUDA、Stable Diffusion 等开发环境，现活动期间新用户注册即可免费体验 RTX4090 GPU。&lt;/p&gt;</description>
      <author>upyun</author>
      <pubDate>Mon, 25 Dec 2023 11:51:54 +0800</pubDate>
      <link>https://ruby-china.org/topics/43525</link>
      <guid>https://ruby-china.org/topics/43525</guid>
    </item>
    <item>
      <title>NVIDIA RTX4090，你能用它做什么？</title>
      <description>&lt;p&gt;都说男生是世界上最简单的动物，为什么呢？举个例子，你要给女朋友送礼，你可以选择包、口红、护肤品、化妆品等，而包的品牌和样式、口红的色号等足以让你挑得眼花缭乱。而男生不一样，如果女生选择给男生送礼，我相信一块 RTX4090 就足以让他高兴得死去活来。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/520914de-ca29-43c8-adb6-ac88bae66a13.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;RTX4090 到底是何方神圣？它凭什么赢得所有男生的“芳心”？&lt;/p&gt;
&lt;h2 id="了解GTX4090"&gt;了解 GTX4090&lt;/h2&gt;
&lt;p&gt;我们先来看下 NVIDIA 官方对 RTX4090 的介绍。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The NVIDIA® GeForce RTX™ 4090 is the ultimate GeForce GPU. It brings an enormous leap in performance, efficiency, and AI-powered graphics. Experience ultra-high performance gaming, incredibly detailed virtual worlds, unprecedented productivity, and new ways to create. It’s powered by the NVIDIA Ada Lovelace architecture and comes with 24 GB of G6X memory to deliver the ultimate experience for gamers and creators.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;RTX4090 是终极的 GeForce GPU。它带来了性能、效率和人工智能驱动的图形方面的巨大飞跃，体验超高性能的游戏、极其详细的虚拟世界、前所未有的生产力和新的创作方式。它采用 NVIDIA Ada Lovelace 架构，并配备 24 GB G6X 显示内存，为游戏玩家和创作者提供终极体验。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/7f011b70-0827-4b81-bd8c-cc318af09d10.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;RTX4090 采用的是 AD102 核心，拥有 11 组共 16384 个流处理器、512 个 Tensor Core、176 个 RT Core 和 176 个流处理器单元。RTX4090 采用了 NVIDIA Ada Lovelace 架构，致力于打造出色的游戏与创作、专业图形、AI 和计算性能，采用了新型 SM 多单元流处理器、第四代 Tensor Core、第三代 RT core 等多种新技术。&lt;/p&gt;
&lt;h3 id="第四代Tensor Core"&gt;第四代 Tensor Core&lt;/h3&gt;
&lt;p&gt;NVIDIA DLSS 3 是 AI 驱动图形领域的革命性突破，可大幅提升性能。DLSS 3 由 GeForce RTX40 系列 GPU 所搭载的全新第四代 Tensor Core 和光流加速器提供支持，可利用 AI 创造更多高质量帧。&lt;/p&gt;

&lt;p&gt;另外，凭借全新的 FP8 Transformer 引擎，Ada 的全新第四代 Tensor Core 拥有不可思议的飞快速度，可将吞吐量提升 4 倍，达到 1.4 Tensor-petaFLOPS。&lt;/p&gt;
&lt;h3 id="第三代RT Core"&gt;第三代 RT Core&lt;/h3&gt;
&lt;p&gt;NVIDIA 发明的 RT Core 在视频游戏中实现了实时光线追踪。这种搭载在 GPU 上的特殊核心专为处理性能需求密集的光线追踪工作负载而设计。&lt;/p&gt;

&lt;p&gt;Ada 架构采用的第 3 代 RT Core 不仅将光线与三角形求交性能提高了一倍，还将 RT-TFLOP 峰值性能提高了一倍之多。&lt;/p&gt;

&lt;p&gt;新款 RT Core 还配备全新 Opacity Micromap (OMM) 引擎和 Displaced Micro-Mesh (DMM) 引擎。OMM 引擎可大幅提升对 alpha 测试纹理进行光线追踪的速度，此类纹理通常应用于树叶、颗粒和围栏。DMM 引擎能够以近乎 9 倍的速度构建光线追踪边界体积层次结构 (BVH)，而所占用的显存只有之前的二十分之一。从而实现几何复杂场景的实时光线追踪。&lt;/p&gt;
&lt;h2 id="RTX4090的应用场景"&gt;RTX4090 的应用场景&lt;/h2&gt;
&lt;p&gt;RTX4090 这么强，主要应用在哪些方面呢？&lt;/p&gt;
&lt;h3 id="游戏"&gt;游戏&lt;/h3&gt;
&lt;p&gt;首先毫无疑问是在游戏方面的应用。RTX4090 是能驾驭各种游戏的硬核 GPU，拥有惊人的性能和超大 24GB G6X 显存，能以 8K 分辨率轻松运行多款热门游戏，支持 HDMI 2.1 所提供的 8K 60Hz HDR 和可变刷新率功能。你可以借助 RTX4090 强大的能力，在 8k 分辨率的 HDR 模式下，可以尽情体验游戏大作，尽享视觉盛宴。这也是为什么 RTX4090 是大部分男生的梦想。&lt;/p&gt;

&lt;p&gt;相较于 RTX 3090，RTX4090 的性能基本上能达到它的两倍。当然，相应的功耗也大了不少，比 3090 高出了将近 100W。下图是 RTX4090 和 RTX3090Ti 在各个游戏中的性能对比，大家可以看到 RTX4090 的表现是相当亮眼的。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/9312fcce-13b9-4c06-8215-6183c5f5c116.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;△ RTX4090 vs RTX3090Ti 性能对比&lt;/p&gt;
&lt;h3 id="AI绘画"&gt;AI 绘画&lt;/h3&gt;
&lt;p&gt;Stable Diffusion 是我们常用的 AI 绘画软件，Stable Diffusion 是支持使用 CPU 或 GPU 来完成 AI 绘画。而在 AI 绘画中，RTX4090 展现出它在目前消费级显卡中最强的 AIGC 性能，处理速度要比次顶级的 RTX 4080 强上约 30%，相较于 RTX3090 Ti 也有接近 2 倍的性能提升。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/1f51004a-dc6e-4404-ad61-ee7d4c343c84.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;说到 AI 绘画，也顺便提一下前面已经说过的 NVIDIA DLSS（深度学习超级采样）。DLSS 是一种神经图形技术，它使用 AI 来提高性能，创建全新的帧，通过图像重建显示更高分辨率，并提高密集光线追踪内容的图像质量，同时提供最佳的一流的图像质量和响应能力，其实这也是一种 AIGC。DLSS 在部分游戏中已经支持，如今一些创作软件也有利用 DLSS 技术来做加速。这对 GPU 的性能要求很高，即使是上一代最强的 RTX3090 Ti 都难以实现，但新一代 RTX 40 系显卡的 DLSS 3 技术加入帧生成技术，使得单张显卡也都可以进行一些中轻度的创作。&lt;/p&gt;
&lt;h3 id="深度学习推理"&gt;深度学习推理&lt;/h3&gt;
&lt;p&gt;在大模型的训练阶段，RTX4090 是不行的。为什么这么说呢？RTX4090 虽然算力强，性价比也高，但是不支持 NVLink，这就成为了 RTX4090 不能成为大模型训练的主要原因。当然，相较于 A100 40GB、80GB 的大显存，RTX4090 只有 24GB 的显存，也显得相对弱了不少。于大模型训练而言，A100 相较于 RTX4090，并不是因为单卡性能强了多少，而是在于拓展性、服务、显存这些方面的优势。&lt;/p&gt;

&lt;p&gt;RTX4090 不适用于大模型训练，为什么却可以用于深度学习推理呢？我们来了解下推理和训练有什么区别。&lt;/p&gt;

&lt;p&gt;深度学习推理是指在已经完成训练的深度学习模型上进行实际应用和预测的过程。在深度学习中，模型的训练阶段是为了调整模型的参数和权重，以使其能够准确地对训练数据进行分类、预测或生成。一旦深度学习模型完成训练，它就可以用于推理阶段，即对新的输入数据进行处理和预测。&lt;/p&gt;

&lt;p&gt;在训练阶段，GPU 不仅需要存储模型参数，还需要存储梯度、优化器状态、正向传播每一层的中间状态（activation）。训练任务是一个整体，流水线并行的正向传播中间结果是需要存下来给反向传播用的。为了节约内存而使用流水线并行，流水级越多，要存储的中间状态也就更多。&lt;/p&gt;

&lt;p&gt;而在推理阶段，模型将接收输入数据，并通过前向传播算法计算输出结果。这个过程不涉及参数的更新或反向传播的计算，而是利用模型已经学到的知识来进行预测。推理任务中的各个输入数据之间并没有关系，因此流水线并行不需要存储很多中间状态。&lt;/p&gt;
&lt;h2 id="0元体验RTX4090"&gt;0 元体验 RTX4090&lt;/h2&gt;
&lt;p&gt;在了解 RTX4090 的强大后，你可能在为没办法体验到它而感到遗憾。那么我偷偷告诉你，又拍云联合厚德云推出 RTX4090 GPU，新用户完成注册即可 0 元体验。你只要完成下面 3 个步骤即可：  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. 创建&lt;/strong&gt;&lt;a href="https://link.zhihu.com/?target=https%3A//www.houdeyun.cn/" rel="nofollow" target="_blank" title=""&gt;厚德云&lt;/a&gt;&lt;strong&gt;账号并完成实名认证；&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. 领取体验金&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;登录厚德云后在 GPU 中选择 NVIDIA 4090，点击免费体验，按步骤领取体验金即可。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. 开启体验之旅&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;领取体验金后即可创建 4090 云主机，点击免费体验，选择镜像，镜像根据需要进行选择，比如“image-gpu-sd_webui_20231018”已经预装了 stable Diffusion，然后点击立即下单即可，体验金会抵扣掉下单金额哦。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/d57b5c67-5c0d-4bf0-a609-f29a37e9f9a0.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;下单后等待创建，显示运行中就可以使用啦。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/370d6dbb-04f0-4955-beee-ab24f73cbfc9.png!large" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>upyun</author>
      <pubDate>Tue, 12 Dec 2023 11:04:21 +0800</pubDate>
      <link>https://ruby-china.org/topics/43509</link>
      <guid>https://ruby-china.org/topics/43509</guid>
    </item>
    <item>
      <title>3 分钟看完 NVIDIA GPU 架构及演进</title>
      <description>&lt;p&gt;近期随着 AI 市场的爆发式增长，作为 AI 背后技术的核心之一 GPU（图形处理器）的价格也水涨船高。GPU 在人工智能中发挥着巨大的重要，特别是在计算和数据处理方面。目前生产 GPU 主流厂商其实并不多，主要就是 NVIDIA、AMD、Intel、高通等厂家。本文将主要聊聊 NVIDIA GPU 的核心架构及架构演进。&lt;/p&gt;
&lt;h2 id="深入了解GPU架构"&gt;深入了解 GPU 架构&lt;/h2&gt;
&lt;p&gt;在探讨 NVIDIA GPU 架构之前，我们先来了解一些相关的基本知识。GPU 的概念，是由 NVIDIA 公司在 1999 年发布 Geforce256 图形处理芯片时首先提出，从此 NVIDIA 显卡的芯就用 GPU 来称呼，是专门设计用于处理图形渲染的处理器，主要负责将图像数据转换为可以在屏幕上显示的图像。&lt;/p&gt;

&lt;p&gt;与 CPU 不同，GPU 具有数千个较小的内核（内核数量取决于型号和应用），因此 GPU 架构针对并行处理进行了优化。GPU 可以同时处理多个任务，并且在处理图形和数学工作负载时速度更快。GPU 架构是赋予 GPU 功能和独特能力的一切，主要组成包括：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  CUDA 核心：GPU 架构中的主要计算单元，能够处理各种数学和逻辑运算。&lt;/li&gt;
&lt;li&gt;  内存系统：包括 L1、L2 高速缓存和共享内存等，用于存储数据和指令，以减少 GPU 访问主存的延迟。&lt;/li&gt;
&lt;li&gt;  高速缓存和缓存行：用于提高 GPU 的内存访问效率。&lt;/li&gt;
&lt;li&gt;  TPC/SM：CUDA 核心的分组结构，一个 TPC 包含两个 SM，每个 SM 都有自己的 CUDA 核心和内存。&lt;/li&gt;
&lt;li&gt;  Tensor Core（2017 年 Volta 架构引入）：Tensor 张量核心，用于执行张量计算，支持并行执行 FP32 与 INT32 运算。&lt;/li&gt;
&lt;li&gt;  RT Core（2018 年 Turing 架构引入）：光线追踪核心，负责处理光线追踪加速。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;此外，NVIDIA GPU 架构还包括内存控制器、高速缓存控制器、CUDA 编译器和驱动程序等其他组件，这些组件与 SM 和其他核心组件协同工作，可以实现高效的并行计算和内存访问，提高 GPU 的性能和能效。下面我们来详细了解一下这些 GPU 架构每一部分的作用及功能。&lt;/p&gt;
&lt;h3 id="Streaming Multiprocessor(SM)"&gt;Streaming Multiprocessor(SM)&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/0c4fa418-9953-40ad-925f-f4a385a2c51f.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;从上图中可以看出 GPU 主要有许许多多的 SM 组成，SM 全称为 Streaming Multiprocessor 流式多处理器，是 NVIDIA GPU 架构中的重要组成部分，也是 GPU 的基本计算单元。每个 SM 由多个 CUDA 核心、纹理单元、Tensor Core、流控制器和存储器等辅助单元组成，可以同时执行多个计算任务，并具有高度的灵活性和性能。&lt;/p&gt;

&lt;p&gt;最先支持 CUDA 的 GPU —— G80 或 GeForce 8800 GTX，包含 8 个 TPC，每一个 TPC 中有两个 SM，一共有 16 个 SM。接下来支持 CUDA 的 GPU 是 GT200 或 GeForceGTX 280，它增加了 TPC 中的 SM 数量，包含 10 个 TPC 并且每个 TPC 含有 3 个 SM，总共是 30 个 SM。每一代 GPU 架构所支持的 SM 核心数量都不相同，如在 2020 年 Ampere 架构的完整 GA102 核心中，总共有 92 个 SM，每个 SM 包含 128 个 CUDA 核心、4 个 Tensor 核心和 1 个 RT 核心。&lt;/p&gt;
&lt;h3 id="CUDA Core"&gt;CUDA Core&lt;/h3&gt;
&lt;p&gt;看完 SM 的介绍，接下来我们看看构成 SM 最重要的组成部分 CUDA Core。&lt;/p&gt;

&lt;p&gt;CUDA 全称为统一计算设备架构 (Compute Unified Device Architecture) ，是一个并行计算平台，同时也是一个应用程序编程接口 (API)。它是由 NVIDIA 专门设计，目的在于让软件开发人员能够更好地控制他们可以使用的物理资源。使用 C 或 C++ 编码的计算机程序员对资源分配有很大的控制权。CUDA 系统极大地促进了 OpenACC 和 OpenCL 等框架的普及和使用。CUDA 核心也是并行处理器，允许不同处理器同时处理数据。这与双核或四核 CPU 类似，只不过 GPU 有数千个 CUDA 核心。区别在于 CPU 更像是一个管理员，负责控制整个计算机，而 GPU 适合做具体的工作。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;并行计算&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;CUDA 的巨大优势是任务并行化，允许通过扩展在 C 和 C++ 中并行工作，处理不同重要性级别的任务和数据。这些并行化任务可以使用各种高级语言来执行，例如 C 语言、C++ 以及 Python，或者简单地使用包含 OpenACC 指令的开放标准。&lt;/p&gt;

&lt;p&gt;CUDA 是目前最常用的任务加速平台，并且技术的发展已经取得了巨大的进步。CUDA 技术是使用最广泛、最重要的技术之一。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;应用范围&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;CUDA 应用范围包括加密哈希、物理引擎、游戏开发等相关项目，在科学行业，在测量、测绘、天气预报和其他等相关项目得到了很大改善和简化。目前，数以千计的研究人员可以在学术和制药领域从事分子动力学研究，这简化了药理学的开发和研究，从而在治疗癌症、阿尔茨海默病和其他当今无法治愈的疾病等复杂疾病方面在更短的时间内取得进展。&lt;/p&gt;

&lt;p&gt;CUDA 还可以对有风险的金融操作进行预测，将效率加快至少十八倍或更多。其他例子包括 Tesla GPU 在云计算和其他需要强大工作能力的计算系统中广受好评。CUDA 还允许自动驾驶车辆简单高效地运行，能够进行其他系统无法完成的实时计算。这种计算敏捷性使车辆能够在很短的时间内做出重要决策，避开障碍物，顺利行驶或避免事故。&lt;/p&gt;
&lt;h3 id="Tensor Core"&gt;Tensor Core&lt;/h3&gt;
&lt;p&gt;随着 GPU 开始用于人工智能和机器学习工作，NVIDIA 从 2017 年开始在其数据中心 GPU 的 Volta 架构中引入了 Tensor Core。但是直到 NVIDIATuring 架构的推出（RTX 20 系列 GPU）这些核心才出现在消费类 GPU 中。&lt;/p&gt;

&lt;p&gt;CUDA 核心足以满足计算工作负载，但 Tensor Core 的速度明显更快。CUDA 核心每个时间周期只能执行一项操作，但 Tensor 核心可以处理多项操作，从而带来令人难以置信的性能提升。从根本意义上来说，Tensor Core 所做的就是提高矩阵乘法的速度。&lt;/p&gt;

&lt;p&gt;计算速度的提升确实是以准确性为代价的，从这点上来说 CUDA 核心的准确度要高得多。但是在训练机器学习模型时，Tensor Core 在计算速度和总体成本方面要有效得多，此时准确性的损失常常被忽略。&lt;/p&gt;

&lt;p&gt;较之 CUDA Core 专门处理图形工作负载，Tensor Core 更擅长处理数字工作负载。在它们同时工作的过程中，在某些场景下可以互换。&lt;/p&gt;
&lt;h3 id="RT Core"&gt;RT Core&lt;/h3&gt;
&lt;p&gt;2018 年 NVIDIA 发布了新一代的旗舰显卡 RTX 2080，搭载了全新的 Turing（图灵）架构。全新的架构也同时添加了名为 RT Core 的计算单元，相当于在 Volta 上增加的 Tensor Core，都是为了特殊应用架构而设计的计算单元。该计算单元的目的是为了让 GPU 拥有实时光线追踪的能力，一种可以让画面更换新的渲染演算法。&lt;/p&gt;

&lt;p&gt;光线追踪（Ray Tracing）的原理是从用户端为起点，寻找光线反射和折射的路径并算出用户会看到的物体颜色及亮度。然而，由于使大量光线在空间中反射决策，且空间中实际的状况未知，每一张图所需的计算量极其巨大，无法即时计算出结果，因此游戏产业尚未大量采用该技术。在发布的 RTX 2080 显卡中，NVIDIA 正式将 RT Core 加入绘图卡，让实时光学渲染法（Rendering）不再是说说而已。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/c6305b4d-e259-4b62-a2af-08a4aba35a5a.png!large" title="" alt=""&gt;&lt;/p&gt;
&lt;h2 id="GPU架构演进"&gt;GPU 架构演进&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/9d656a7d-3a60-4369-9702-d8d7295b6cc1.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;在了解完 GPU 架构组成部分后，我们来看看 NVIDIA GPU 架构的演进。自 NVIDIA 成立之初，其 GPU 架构历经多次变革。从 G80、GT200 系列，到 Fermi、Kepler、Pascal 和 Volta 架构等，以及近期的 Ampere 和 Hopper 架构。值得一提的是架构命名方式从 Tesla 架构开始每一代以科学家命名，每一代都有其独特的设计和特点，简单介绍下其中几个架构。&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; G80 架构：英伟达第一个 GPU 架构，采用了 MIMD（多指令流多数据流）标量架构，拥有 128 个 SP（流处理器），核心频率范围从 250MHz 到 600MHz，搭配 DDR3 显存。该架构是当时最强大的 GPU 之一，但是功耗较高。&lt;/li&gt;
&lt;li&gt; Fermi 架构：英伟达第一个采用 GPU-Direct 技术的 GPU 架构，它拥有 32 个 SM（流多处理器）和 16 个 PolyMorph Engine 阵列，每个 SM 都拥有 1 个 PolyMorph Engine 和 64 个 CUDA 核心。该架构采用了 4 颗芯片的模块化设计，拥有 32 个光栅化处理单元和 16 个纹理单元，搭配 GDDR5 显存。&lt;/li&gt;
&lt;li&gt; Volta 架构：采用了全新的设计理念和技术，拥有 256 个 SM 和 32 个 PolyMorph Engine 阵列，每个 SM 都拥有 64 个 CUDA 核心。该架构采用了全新的 Tensor 张量核心、ResNet 和 InceptionV3 加速模块等技术，搭配 GDDR6X 显存。&lt;/li&gt;
&lt;li&gt; Turing 架构：代表产品为 GeForce RTX 20 系列。该架构首次引入了光线追踪（Ray Tracing）和深度学习超级采样（DLSS），为游戏和设计领域带来了革命性的视觉效果和性能提升。此外，图灵架构还优化了着色器性能，以提高渲染效率和能效比。Turing SM 设计采用全新架构，每个 TPC（Texture and Compute Cluster，纹理和计算集群）均包含两个 SM，每个 SM 共有 64 个 FP 32 核心和 64 个 INT32 核心。也就是说，每个 SM 都包含 128 个核心。这些核心可以并行执行 FP32 与 INT32 运算。每个 Turing SM 还拥有 8 个混合精度 Turing Tensor 核心和 1 个 RT（Ray Tracing，光线追踪）核心。&lt;/li&gt;
&lt;li&gt; Ampere 架构：代表产品为 GeForce RTX 30 系列。该架构继续优化并行计算能力，并引入了更先进的 GDDR6X 内存技术，大幅提高了内存带宽和性能。相比 Turing 架构，Ampere 架构中的 SM 在 Turing 基础上增加了一倍的 FP32 运算单元，这使得每个 SM 的 FP32 运算单元数量提高了一倍，同时吞吐量也就变为了一倍。此外，安培架构还改进了着色器性能和张量核（Tensor Cores），进一步加速深度学习和人工智能任务的处理速度。&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;经过几十年的探索和发展，NVIDIA 的 GPU 架构以其层次化的内存设计、多线程技术、优化内存层次结构、混合精度计算技术和自动功耗优化技术，实现了高效、可扩展、灵活和能效比这几个关键目标。从最初的 GeForce 系列到最新的 Hopper 架构，NVIDIA 不断引领着 GPU 架构的发展，提供了强大的性能和创新的技术，从而在图形处理和人工智能等领域取得了显著的成功。&lt;/p&gt;

&lt;p&gt;又拍云近期联合厚德云推出 GPU 产品，现活动期间新用户注册即可&lt;strong&gt;免费体验 RTX4090 GPU，暂不限体验时长哦！&lt;/strong&gt; 有兴趣的同学点击&lt;strong&gt;下方链接&lt;/strong&gt;即可免费体验~&lt;/p&gt;

&lt;p&gt;传送门：&lt;a href="https://link.zhihu.com/?target=https%3A//www.houdeyun.cn/stats/gpu" rel="nofollow" target="_blank" title=""&gt;RTX4090 0 元体验入口&lt;/a&gt;&lt;/p&gt;</description>
      <author>upyun</author>
      <pubDate>Fri, 10 Nov 2023 15:24:06 +0800</pubDate>
      <link>https://ruby-china.org/topics/43467</link>
      <guid>https://ruby-china.org/topics/43467</guid>
    </item>
    <item>
      <title>聊聊 GPU 产品选型那些事</title>
      <description>&lt;p&gt;随着人工智能的飞速崛起，随之而来的是算力需求的指数级增加，CPU 已经不足以满足深度学习、大模型计算等场景的海量数据处理需求。GPU 作为一种强大的计算工具，无论是高性能计算、图形渲染还是机器学习领域，在各个领域展现出了巨大的潜力和应用前景。&lt;/p&gt;

&lt;p&gt;说起 GPU，绕不过的当然是 NVIDIA 这个公司了，现在市面上火热的 A100/A800、H100 等 GPU 全是他家的产品。但当你有业务需求或者个人需求，想要采购 GPU 的时候，你会发现各个型号的 GPU 令你眼花缭乱。这次我们就来聊聊 NVIDIA 的 GPU 产品，让你对各个型号的 GPU 有个深入的了解。&lt;/p&gt;
&lt;h2 id="GPU 应用场景"&gt;GPU 应用场景&lt;/h2&gt;
&lt;p&gt;在选择 GPU 产品之前，首要任务是明确自己的应用需求。不同的应用领域对 GPU 的需求存在差异，因此了解自己的需求是做出明智决策的关键。接下来我们了解下常见的 GPU 应用场景。&lt;/p&gt;
&lt;h3 id="游戏和图形渲染"&gt;游戏和图形渲染&lt;/h3&gt;
&lt;p&gt;我把游戏和图形渲染这个应用场景放在了第一位，并不是说它是 GPU 最常用的应用场景，而是很多小伙伴在学生时代就已经接触了“显卡”。GPU 不等于显卡，它是显卡的核心，就像 CPU 是主板上的一块芯片。GPU 刚被发明出来的初衷是用于图形渲染，这从它的名字 Graphic Processing Unit（图形处理单元）就可以看出来。&lt;/p&gt;

&lt;p&gt;在游戏和图形渲染中，GPU 能够处理复杂的图形渲染任务，使游戏画面更加逼真和流畅。游戏开发人员使用 GPU 来创建游戏的视觉效果、光照和物理模拟等。NVIDIA 产品的 GeForce 系列，主要就是面向游戏娱乐领域，我们常说的 RTX4090 &lt;strong&gt;（文末有免费体验入口哦）&lt;/strong&gt; ，其中在框架中采用了第三代 RT core，光线追踪性能最高可提升 2 倍，主要用于游戏开发、电影制作和虚拟现实等需要实时渲染的领域。当然，GeForce 系列的显卡也可以用于 AI 推理等，只是在计算能力上没有像企业级 GPU 那么强悍。&lt;/p&gt;
&lt;h3 id="大模型计算"&gt;大模型计算&lt;/h3&gt;
&lt;p&gt;大模型训练通常涉及处理海量数据和复杂的计算任务，例如深度神经网络的训练。大模型通常需要大量的显存来存储模型参数、梯度和中间计算结果。较大的显存容量可以提供更高的批处理大小和更复杂的模型结构，有助于提升模型的性能和准确度。同时，大模型训练需要进行大量的矩阵计算、张量操作和梯度更新等复杂的计算任务。GPU 具备强大的计算能力和优化的张量计算指令集，能够加速大规模模型的训练过程，减少训练时间。&lt;/p&gt;

&lt;p&gt;通常而言，大模型训练会将训练数据分成多个批次，分配给不同的 GPU 进行并行处理，这就需要 GPU 具备高效的并行计算能力和快速的数据传输能力，以支持并行训练的效率和可扩展性。而在计算精度方面，通常会使用混合精度计算，即采用较低精度的浮点数进行计算，在关键位置使用较高精度的浮点数进行修正。这也是大模型计算和高性能计算区别较大的地方。&lt;/p&gt;
&lt;h3 id="AI推理"&gt;AI 推理&lt;/h3&gt;
&lt;p&gt;AI 推理是指在已经训练好的模型上进行实时推断和预测，通常要求在较短的时间内处理大量的数据，例如实时图像识别和语音识别。GPU 具备较低的计算延迟和高吞吐量，能够迅速处理输入数据并输出推理结果，满足实时性要求、AI 推理任务主要涉及张量计算，包括矩阵乘法、卷积操作等。NVIDIA 在 Volta 架构及其后续架构（如 Ampere 架构）中引入了 Tensor Core，专门用于深度学习任务重的张量计算，如矩阵乘法和卷积运算。Tensor Core 核心特别大，通常与深度学习框架（如 TensorFlow 和 PyTorch）相结合使用，它可以把整个矩阵都载入寄存器中批量运算，实现十几倍的效率提升。此外，AI 推理对于功耗和散热也有一定要求。&lt;/p&gt;
&lt;h3 id="高性能计算"&gt;高性能计算&lt;/h3&gt;
&lt;p&gt;高性能计算涉及科学计算、数值模拟、天气预报等需要大规模并行计算的领域。在这种场景下，GPU 需要具备大量的 CUDA 核心和高内存带宽，以实现高效的并行计算。此外，高性能计算还需要 GPU 具备良好的双精度浮点性能和高速的数据传输能力，以应对复杂的计算任务。&lt;/p&gt;
&lt;h2 id="GPU系列及参数解读"&gt;GPU 系列及参数解读&lt;/h2&gt;&lt;h3 id="NVIDIA GPU系列"&gt;NVIDIA GPU 系列&lt;/h3&gt;
&lt;p&gt;在了解了 GPU 基本的应用场景后，我们来看下 NVIDIA 的显卡主要有哪些？NVIDIA 三大主要产品线包括：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; GeForce 系列：GeForce 系列是 NVIDIA 面向个人计算和游戏市场推出的产品线。GeForce 显卡是用于游戏、图形处理和多媒体应用的高性能图形处理器。GeForce 显卡以其强大的图形渲染能力、高帧率和流畅的游戏体验而受到广大游戏爱好者的青睐。&lt;/li&gt;
&lt;li&gt; Quadro 系列：Quadro 系列是 NVIDIA 专为专业工作站和专业图形应用开发的产品线。Quadro 显卡具备专业级的图形渲染和计算能力，适用于 CAD、动画制作、电影后期制作等领域。Quadro 显卡提供高度可靠性、精确度和稳定性，满足专业用户对精确图形处理和计算的需求。&lt;/li&gt;
&lt;li&gt; Tesla 系列：Tesla 系列是 NVIDIA 针对高性能计算和人工智能领域推出的产品线。Tesla 显卡采用 GPU 加速计算，具备强大的并行计算能力和高性能计算效率。它们被广泛应用于科学计算、深度学习、大规模数据分析等领域，加速计算任务的执行和模型训练。我们常说的 A100、V100 都是属于 Tesla 系列的显卡。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="GPU参数解读"&gt;GPU 参数解读&lt;/h3&gt;
&lt;p&gt;我们结合下面这个表格，来看看 GPU 选型时需要关注哪些参数。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/22f1da39-a9aa-426e-bb5b-1a90c957599c.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;计算能力&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;计算能力是 GPU 进行并行计算的指标之一，也是 GPU 的核心能力。较高的计算能力意味着 GPU 具备更强大的计算能力和支持更高级的计算功能。具体这些计算参数有什么区别，在应用上有哪些不同呢？我们来一一了解下。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  FP64：双精度浮点数具有较高的精度和范围，可以表示更广泛的数值范围和更精确的小数值。在科学计算、工程模拟和需要高精度计算的应用中常常使用双精度浮点数。&lt;/li&gt;
&lt;li&gt;  FP32 : 单精度，作为训练场景的数据格式的标准值。相对于双精度浮点数，单精度浮点数具有较低的精度但更高的计算速度和较小的存储需求。在许多机器学习和深度学习任务中，单精度浮点数已经足够满足计算需求，并且能够加速计算过程。&lt;/li&gt;
&lt;li&gt;  TF32：从 A100 开始 NVIDIA 提出的数据格式。它比 FP32 精度低，比 FP16 精度高，主要用于深度学习训练，理论上比 FP32+FP16 混合精度效果更优;&lt;/li&gt;
&lt;li&gt;  BF16 : Intel x86、ARM 采用的，主要用于机器学习和深度学习领域。作为一种低精度浮点数格式，可以在一定程度上平衡计算精度和计算效率。它在模型训练和推理中被广泛使用，可以减少存储需求和计算开销，同时仍能保持较高的计算准确性。&lt;/li&gt;
&lt;li&gt;  FP16：半精度浮点数具有较低的精度但更高的计算速度和较小的存储需求，主要用于推理。&lt;/li&gt;
&lt;li&gt;  INT8：INT8 是一种使用 8 位（1 字节）内存来表示整数的数据类型。相对于浮点数，整数计算通常具有更高的计算效率和较小的存储需求，主要用于推理。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;可能光这样看文字，大家不是很好理解，我们拿 FP32 来做个具体的举例。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/ef7fa5b8-793c-46c8-b517-0bcd1163debd.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;FP32 长度有 32 位，其中指数位占 8 位，精度尾数占 23 位，最前面是标志位。指数位越大，代表数值越大，精度的长度越多，表示小数点后的精度越高。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;显存容量（GPU Memory）&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;显存是 GPU 用于存储模型参数、计算中间结果和图像数据等的内存。显存容量的大小直接影响着能否加载和处理大规模的数据和模型。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CUDA Core&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;CUDA Core 是 NVIDIA GPU 上的计算核心单元，用于执行通用的并行计算任务，是最常看到的核心类型。NVIDIA 通常用最小的运算单元表示自己的运算能力，CUDA Core 指的是一个执行基础运算的处理元件，我们所说的 CUDA Core 数量，通常对应的是 FP32 计算单元的数量。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tensor core&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tensor Core 是 NVIDIA Volta 架构及其后续架构（如 Ampere 架构）中引入的一种特殊计算单元。它们专门用于深度学习任务中的张量计算，如矩阵乘法和卷积运算。Tensor Core 核心特别大，通常与深度学习框架（如 TensorFlow 和 PyTorch）相结合使用，它可以把整个矩阵都载入寄存器中批量运算，实现十几倍的效率提升。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;接口形式&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;SXM 和 PCIe 是两种不同的接口形式，SXM 接口直接将 GPU 连接到主板上，而 PCIe 接口通过插槽与主板连接。SXM 接口提供更高的带宽和更低的延迟，适用于高性能计算和数据中心需求。而 PCIe 接口广泛应用于个人计算机、工作站和服务器等各种计算设备。&lt;/p&gt;
&lt;h2 id="如何选择适合业务的GPU"&gt;如何选择适合业务的 GPU&lt;/h2&gt;&lt;h3 id="A100、V100、H100对比"&gt;A100、V100、H100 对比&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/57385c91-8b5d-4d8f-a81c-8cbab07cdc6d.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;V100 是 NVIDIA 公司推出的高性能计算和人工智能加速器，属于 Volta 架构，它采用 12nm FinFET 工艺，拥有 5120 个 CUDA 核心和 16GB-32GB 的 HBM2 显存，配备第一代 Tensor Cores 技术，支持 AI 运算。&lt;/p&gt;

&lt;p&gt;A100 采用全新的 Ampere 架构。它拥有高达 6912 个 CUDA 核心和 40GB 的高速 HBM2 显存。A100 还支持第二代 NVLink 技术，实现快速的 GPU 到 GPU 通信，提升大型模型的训练速度。A100 增加了功能强大的新第三代 Tensor Core，同时增加了对 DL 和 HPC 数据类型的全面支持，以及新的稀疏功能，可将吞吐量进一步翻倍。&lt;/p&gt;

&lt;p&gt;在跑 AI 模型时，如果用 PyTorch 框架，相比上一代 V100 芯片，A100 在 BERT 模型的训练上性能提升 6 倍，BERT 推断时性能提升 7 倍。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/33e50843-629c-467f-90dd-2ddf5a7d5996.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;H100 配备 132 个 SM，比 A100 的 108 个 SM 增加了 22%。由于采用新的第四代 Tensor Core，每个 H100 SM 的速度都提升了 2 倍。在每个 Tensor Core 中，新的 FP8 格式和相应的 Transformer 引擎又将性能提升了 2 倍。最后，H100 中更高的时钟频率将性能再提升了约 1.3 倍。通过这些改进，总体而言，H100 的峰值计算吞吐量大约为 A100 的 6 倍。&lt;/p&gt;
&lt;h3 id="Tssla A系列简单对比"&gt;Tssla A 系列简单对比&lt;/h3&gt;
&lt;p&gt;当然，A100、H100 无论是在推理还是大模型训练中的性能都非常突出，但是价格也相对比较高。我也找了些资料展示下 Tesla A 系列（A10、A16、A30、A40、A100）在业务能力和在大模型训练和推理上性能的对比，这里就不再赘述了。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/3bfa0912-7050-4cc2-b966-ba39251f313e.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/d06c950f-2e07-445b-a9a9-cc9432d33753.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;△ 图片来源于互联网，侵删&lt;/p&gt;

&lt;p&gt;相信看到这里，大家对 GPU 产品选型已经有了一定的想法。在选择时，大家可以参考 GPU 制造商的官方文档、性能比较表等资源，以获取更详细的信息和比较不同 GPU 之间的性能特点。当然最重要的是要明确自身业务的计算需求和任务类型啦。&lt;/p&gt;

&lt;p&gt;又拍云近期联合厚德云推出 GPU 产品，现活动期间新用户注册即可&lt;strong&gt;免费体验 RTX4090 GPU，暂不限体验时长哦！&lt;/strong&gt; 有兴趣的同学点击&lt;strong&gt;下方链接&lt;/strong&gt;即可体验~&lt;/p&gt;

&lt;p&gt;&lt;a href="https://link.zhihu.com/?target=https%3A//www.houdeyun.cn/stats/gpu" rel="nofollow" target="_blank" title=""&gt;传送门：RTX4090 0 元体验入口&lt;/a&gt;&lt;/p&gt;</description>
      <author>upyun</author>
      <pubDate>Thu, 09 Nov 2023 15:09:04 +0800</pubDate>
      <link>https://ruby-china.org/topics/43464</link>
      <guid>https://ruby-china.org/topics/43464</guid>
    </item>
    <item>
      <title>巅峰对决：英伟达 V100、A100/800、H100/800 GPU 对比</title>
      <description>&lt;p&gt;近期，不论是国外的 ChatGPT，还是国内诸多的大模型，让 AIGC 的市场一片爆火。而在 AIGC 的种种智能表现背后，均来自于堪称天文数字的算力支持。以 ChatGPT 为例，据微软高管透露，为 ChatGPT 提供算力支持的 AI 超级计算机，是微软在 2019 年投资 10 亿美元建造一台大型顶尖超级计算机，配备了数万个 NVIDIA A100 GPU，还配备了 60 多个数据中心总共部署了几十万个 NVIDIA GPU 辅助。&lt;/p&gt;

&lt;p&gt;相信大家对 GPU 已经不陌生了，它的主要作用是帮助运行训练和部署人工智能算法所涉及的无数计算。而现在市面上繁多的 GPU 型号令人眼花缭乱，我们今天就来看看常见的 V100、A100、A800、H100、H800 这几款 GPU 有什么区别呢？&lt;/p&gt;
&lt;h2 id="GPU 的核心架构及参数"&gt;GPU 的核心架构及参数&lt;/h2&gt;
&lt;p&gt;在了解 V100、A100、H100 这几款 GPU 的区别之前，我们先来简单了解下 NVIDIA GPU 的核心参数，这样能够更好地帮助我们了解这些 GPU 的差别和各自的优势。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  CUDA Core：CUDA Core 是 NVIDIA GPU 上的计算核心单元，用于执行通用的并行计算任务，是最常看到的核心类型。NVIDIA 通常用最小的运算单元表示自己的运算能力，CUDA Core 指的是一个执行基础运算的处理元件，我们所说的 CUDA Core 数量，通常对应的是 FP32 计算单元的数量。&lt;/li&gt;
&lt;li&gt;  Tensor Core：Tensor Core 是 NVIDIA Volta 架构及其后续架构（如 Ampere 架构）中引入的一种特殊计算单元。它们专门用于深度学习任务中的张量计算，如矩阵乘法和卷积运算。Tensor Core 核心特别大，通常与深度学习框架（如 TensorFlow 和 PyTorch）相结合使用，它可以把整个矩阵都载入寄存器中批量运算，实现十几倍的效率提升。&lt;/li&gt;
&lt;li&gt;  RT Core：RT Core 是 NVIDIA 的专用硬件单元，主要用于加速光线追踪计算。正常数据中心级的 GPU 核心是没有 RT Core 的，主要是消费级显卡才为光线追踪运算添加了 RTCores。RT Core 主要用于游戏开发、电影制作和虚拟现实等需要实时渲染的领域。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;在了解了 GPU 的这些核心参数之后，我们再来看看 NVIDIA GPU 架构的演进。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/c335da39-ed2e-4313-a387-d7047e8ceb21.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;从上图中就可以看出，V100 是前一代的“卡皇”，而 H100 则是新一代的“卡皇”。我们先简单了解下这些架构：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Volta 架构：Volta 架构是 NVIDIA GPU 的第六代架构，发布于 2017 年。Volta 架构专注于深度学习和人工智能应用，并引入了 Tensor Core。&lt;/li&gt;
&lt;li&gt;  Turing 架构：Turing 架构是 NVIDIA GPU 的第七代架构，发布于 2018 年。Turing 架构引入了实时光线追踪（RTX）和深度学习超采样（DLSS）等重要功能。&lt;/li&gt;
&lt;li&gt;  Ampere 架构：Ampere 架构是 NVIDIA GPU 的第八代架构，2020 年发布。Ampere 架构在计算能力、能效和深度学习性能方面都有重大提升。Ampere 架构的 GPU 采用了多个流多处理器（SM）和更大的总线宽度，提供了更多的 CUDA Core 和更高的频率。它还引入了第三代 Tensor Core，提供更强大的深度学习计算性能。Ampere 架构的 GPU 还具有更高的内存容量和带宽，适用于大规模的数据处理和机器学习任务。&lt;/li&gt;
&lt;li&gt;  Hopper 架构：Hopper 架构是 NVIDIA GPU 的第九代架构，2022 年发布。相较于 Ampere，Hopper 架构支持第四代 Tensor Core，且采用新型流式处理器，每个 SM 能力更强。Hopper 架构在计算能力、深度学习加速和图形功能方面带来新的创新和改进。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="V100 vs A100 vs H100"&gt;V100 vs A100 vs H100&lt;/h2&gt;
&lt;p&gt;在了解了 GPU 的核心参数和架构后，我们接下来的对比理解起来就简单多了。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/bb5bce4d-d3a3-4dfc-b619-07b9cac7ea0c.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;△ 图片来源于互联网，侵删&lt;/p&gt;
&lt;h3 id="V100 vs A100"&gt;V100 vs A100&lt;/h3&gt;
&lt;p&gt;V100 是 NVIDIA 公司推出的高性能计算和人工智能加速器，属于 Volta 架构，它采用 12nm FinFET 工艺，拥有 5120 个 CUDA 核心和 16GB-32GB 的 HBM2 显存，配备第一代 Tensor Cores 技术，支持 AI 运算。&lt;/p&gt;

&lt;p&gt;A100 采用全新的 Ampere 架构。它拥有高达 6912 个 CUDA 核心和 40GB 的高速 HBM2 显存。A100 还支持第二代 NVLink 技术，实现快速的 GPU 到 GPU 通信，提升大型模型的训练速度。A100 增加了功能强大的新第三代 Tensor Core，同时增加了对 DL 和 HPC 数据类型的全面支持，以及新的稀疏功能，可将吞吐量进一步翻倍。&lt;/p&gt;

&lt;p&gt;A100 中的 TF32 Tensor Core 运算提供了一种在 DL 框架和 HPC 中加速 FP32 输入/输出数据的简单路径，其运行速度比 V100 FP32 FMA 运算快 10 倍，或者在稀疏性的情况下快 20 倍。对于 FP 16/FP 32 混合精度 DL，A100 的性能是 V100 的 2.5 倍，稀疏性的情况下提高到 5 倍。&lt;/p&gt;

&lt;p&gt;在跑 AI 模型时，如果用 PyTorch 框架，相比上一代 V100 芯片，A100 在 BERT 模型的训练上性能提升 6 倍，BERT 推断时性能提升 7 倍。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/2591d216-fe69-4078-b0bd-9bc0cf38788b.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;△ BERT 训练和推理上，V100 与 A100 的性能对比&lt;/p&gt;
&lt;h3 id="A100 vs H100"&gt;A100 vs H100&lt;/h3&gt;
&lt;p&gt;NVIDIA H100 采用 NVIDIA Hopper GPU 架构，使 NVIDIA 数据中心平台的加速计算性能再次实现了重大飞跃。H100 采用专为 NVIDIA 定制的 TSMC 4N 工艺制造，拥有 800 亿个 晶体管，并包含多项架构改进。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/a1e4bab7-db34-4b8c-b06f-379d0c9c160c.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;H100 是 NVIDIA 的第 9 代数据中心 GPU，旨在为大规模 AI 和 HPC 实现相比于上一代 NVIDIA A100 Tensor Core GPU 数量级的性能飞跃。H100 延续了 A100 的主要设计重点，可提升 AI 和 HPC 工作负载的强大扩展能力，并显著提升架构效率。&lt;/p&gt;
&lt;h3 id="新的 SM 架构"&gt;&lt;strong&gt;新的 SM 架构&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;H100 SM 基于 NVIDIA A100 Tensor Core GPU SM 架构而构建。由于引入了 FP8，与 A100 相比，H100 SM 将每 SM 浮点计算能力峰值提升了 4 倍，并且对于之前所有的 Tensor Core 和 FP32 / FP64 数据类型，将各个时钟频率下的原始 SM 计算能力增加了一倍。&lt;/p&gt;

&lt;p&gt;与上一代 A100 相比，采用 Hopper 的 FP8 Tensor Core 的新 Transformer 引擎使大型语言模型的 AI 训练速度提升 9 倍，AI 推理速度提升 30 倍。针对用于基因组学和蛋白质测序的 Smith-Waterman 算法，Hopper 的新 DPX 指令可将其处理速度提升 7 倍。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/873f6be3-45c5-4304-bfb1-ae515631355d.png!large" title="" alt=""&gt;&lt;/p&gt;
&lt;h3 id="第四代 Tensor Core 架构"&gt;&lt;strong&gt;第四代 Tensor Core 架构&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Hopper 新的第四代 Tensor Core、Tensor 内存加速器以及许多其他新 SM 和 H100 架构的总体改进，在许多其他情况下可令 HPC 和 AI 性能获得最高 3 倍的提升。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/4eac78ac-a847-48df-8beb-18fe2418f564.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;△ H100 FP16 的吞吐量是 A100 FP16 的 3 倍&lt;/p&gt;

&lt;p&gt;与 A100 相比，H100 中新的第四代 Tensor Core 架构可使每时钟每个 SM 的原始密集计算和稀疏矩阵运算吞吐量提升一倍，考虑到 H100 比 A100 拥有更高的 GPU 加速频率，其甚至会达到更高的吞吐量。其支持 FP8、FP16、BF16、TF32、FP64 和 INT8 MMA 数据类型。新的 Tensor Core 还能够实现更高效的数据管理，最高可节省 30% 的操作数传输功耗。&lt;/p&gt;
&lt;h3 id="Hopper FP8 数据格式"&gt;&lt;strong&gt;Hopper FP8 数据格式&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;H100 GPU 增加了 FP8 Tensor Core，可加速 AI 训练和推理。FP8 Tensor Core 支持 FP32 和 FP16 累加器，以及两种新的 FP8 输入类型：E4M3（具有 4 个指数位、3 个尾数位和 1 个符号位）和 E5M2（具有 5 个指数位、2 个尾数位和 1 个符号位）。E4M3 支持动态范围更小、精度更高的计算，而 E5M2 可提供更宽广的动态范围和更低的精度。与 FP16 或 BF16 相比，FP8 可将所需要的数据存储空间减半，并将吞吐量提升一倍。&lt;/p&gt;

&lt;p&gt;新的 Transformer 引擎可结合使用 FP8 和 FP16 精度，减少内存使用并提高性能，同时仍能保持大型语言模型和其他模型的准确性。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/cf0c35c1-d15d-4e99-8aec-409e2b4f575f.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;△ H100 FP8 的吞吐量是 A100 FP16 的 6 倍&lt;/p&gt;

&lt;p&gt;综合 H100 中所有新的计算技术进步的因素，H100 的计算性能比 A100 提高了约 6 倍。首先是 H100 配备 132 个 SM，比 A100 的 108 个 SM 增加了 22%。由于采用新的第四代 Tensor Core，每个 H100 SM 的速度都提升了 2 倍。在每个 Tensor Core 中，新的 FP8 格式和相应的 Transformer 引擎又将性能提升了 2 倍。最后，H100 中更高的时钟频率将性能再提升了约 1.3 倍。通过这些改进，总体而言，H100 的峰值计算吞吐量大约为 A100 的 6 倍。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/49225e2c-15dc-4881-a83c-3425eef468aa.png!large" title="" alt=""&gt;&lt;/p&gt;
&lt;h2 id="A800 和 H800"&gt;A800 和 H800&lt;/h2&gt;
&lt;p&gt;说好 V100、A100、A800、H100、H800 这些 GPU 来做对比的，怎么没见 A800 和 H800 呢？从型号上看，莫非它们的性能是 A100、H800 的好几倍？&lt;/p&gt;

&lt;p&gt;事实不然。虽然从数字上来看，800 比 100 数字要大，其实是为了合规对 A100 和 H100 的某些参数做了调整。A800 相对比 A100 而言，仅限制了 GPU 之间的互联带宽，从 A100 的 600GB/s 降至 400GB/s，算力参数无变化。而 H800 则对算力和互联带宽都进行了调整。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/045632de-d7ea-4ef6-abce-421ea977b26f.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;△ 图片来源于互联网，侵删&lt;/p&gt;

&lt;p&gt;A800 虽然在互联带宽上有所降低，但和 A100 在双精方面算力一致，在高性能科学计算领域没有影响。&lt;/p&gt;

&lt;p&gt;相信聊了这么多，大家对 NVIDIA 这么多款 GPU 有了一定了解。&lt;/p&gt;</description>
      <author>upyun</author>
      <pubDate>Wed, 08 Nov 2023 15:00:34 +0800</pubDate>
      <link>https://ruby-china.org/topics/43461</link>
      <guid>https://ruby-china.org/topics/43461</guid>
    </item>
    <item>
      <title>InfiniBand 的前世今生</title>
      <description>&lt;p&gt;今年，以 ChatGPT 为代表的 AI 大模型强势崛起，而 ChatGPT 所使用的网络，正是 InfiniBand，这也让 InfiniBand 大火了起来。那么，到底什么是 InfiniBand 呢？下面，我们就来带你深入了解 InfiniBand。&lt;/p&gt;
&lt;h2 id="InfiniBand的发展历史"&gt;InfiniBand 的发展历史&lt;/h2&gt;
&lt;p&gt;InfiniBand（也称为“无限带宽”，缩写为 IB）是一个用于高性能计算的计算机网络通信标准，它具有极高的吞吐量和极低的延迟，用于计算机与计算机之间的数据互连。InfiniBand 也用作服务器与存储系统之间的直接或交换互连，以及存储系统之间的互连。随着人工智能的兴起，它也是 GPU 服务器的首选网络互连技术。&lt;/p&gt;

&lt;p&gt;我们来看下 InfiniBand 的发展历程：&lt;/p&gt;

&lt;p&gt;1999 年，一家名为 InfiniBand Trade Association（IBTA）的组织发布了 InfiniBand 架构，该架构的目的是为了取代 PCI 总线，旨在提供一种高性能、低延迟的计算和存储互连技术。&lt;/p&gt;

&lt;p&gt;2000 年，InfiniBand 架构规范的 1.0 版本正式发布。紧接着在 20021 年，首批 InfiniBand 产品问世，多家厂商也开始推出支持 InfiniBand 的产品，包括服务器、存储系统和网络设备等。&lt;/p&gt;

&lt;p&gt;2003 年，InfiniBand 转向一个新的应用领域——计算机集群互联，并在当时的 TOP500 超级计算机中得到了广泛应用。&lt;/p&gt;

&lt;p&gt;在接下来的几年中，InfiniBand 多次引入新的特性和改进，支持双倍带宽的 DDR(Double Date Rate)、远程直接内存访问和更好的虚拟化支持，这些新特性为高性能计算和存储系统提供了更多的灵活性和性能优势。&lt;/p&gt;

&lt;p&gt;到 2019 年的 TOP500 超级计算机中，已经有 181 个采用了 InfiniBand 技术，当时的 Ethernet（以太网）仍然是主流。而到了 2015 年，InfiniBand 技术在 TOP500 超级计算机中的占比首次超过了 50%，达到 51.4%。这标志着 InfiniBand 技术首次实现了对以太网技术的逆袭，成为超级计算机中最受欢迎的内部连接技术。&lt;/p&gt;
&lt;h2 id="InfiniBand的架构"&gt;InfiniBand 的架构&lt;/h2&gt;
&lt;p&gt;InfiniBand 是处理器和 I/O 设备之间数据流的通信链路，支持多达 64,000 个可寻址设备。InfiniBand 架构 (IBA) 是一种行业标准规范，定义了用于互连服务器、通信基础设施、存储设备和嵌入式系统的点对点交换输入/输出框架。&lt;/p&gt;

&lt;p&gt;InfiniBand 的网络架构&lt;/p&gt;

&lt;p&gt;InfiniBand 具有普遍性、低延迟、高带宽和低管理成本，非常适合在单个连接中连接多个数据流（集群、通信、存储、管理），具有数千个互连节点。最小的完整 IBA 单元是子网，多个子网通过路由器连接起来形成一个大的 IBA 网络。&lt;/p&gt;

&lt;p&gt;InfiniBand 系统由通道适配器、交换机、路由器、电缆和连接器组成。CA 分为主机通道适配器 (HCA) 和目标通道适配器 (TCA)。IBA 交换机在原理上与其他标准网络交换机类似，但必须满足 InfiniBand 的高性能和低成本要求。HCA 是 IB 端节点（例如服务器或存储设备）连接到 IB 网络的设备点。TCA 是一种特殊形式的通道适配器，主要用于存储设备等嵌入式环境。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/a8cc3787-4383-48f4-a5ef-8c9be6ec733b.png!large" title="" alt=""&gt;
△ InfiniBand 的网络拓扑结构&lt;/p&gt;
&lt;h3 id="InfiniBand的分层架构"&gt;InfiniBand 的分层架构&lt;/h3&gt;
&lt;p&gt;InfiniBand 架构分为多个层，每个层彼此独立运行。InfiniBand 分为以下几层：物理层、链路层、网络层、传输层和上层。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/9dc095f2-009a-492a-bf9c-2f57243594d6.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;物理层：物理层服务于链路层并提供这两层之间的逻辑接口。物理层由端口信号连接器、物理连接（电和光）、硬件管理、电源管理、编码线等模块组成，&lt;/p&gt;

&lt;p&gt;链路层：链路层负责处理分组中链路数据的发送和接收，提供寻址、缓冲、流量控制、错误检测和数据交换等服务。服务质量（QoS）主要由这一层体现。&lt;/p&gt;

&lt;p&gt;网络层：网络层负责在 IBA 子网之间路由数据包，包括单播和多播操作。网络层不指定多协议路由（例如，非 IBA 类型上的 IBA 路由），也不指定原始数据包如何在 IBA 子网之间路由。&lt;/p&gt;

&lt;p&gt;传输层：每个 IBA 数据都包含一个传输头。传输头包含端节点执行指定操作所需的信息。通过操纵 QP，传输层的 IBA 通道适配器通信客户端形成“发送”工作队列和“接收”工作队列。&lt;/p&gt;

&lt;p&gt;上层：上层协议和应用层负责处理更高级别的通信功能和应用需求。上层协议可以包括诸如 TCP/IP（传输控制协议/互联网协议）、UDP（用户数据报协议）、MPI（消息传递接口）等常见的网络协议。它们利用底层提供的基础通信能力，通过 InfiniBand 网络进行数据传输和通信，用于实现应用程序之间的通信和数据交换。此外，上层还包括运行在 InfiniBand 网络上的应用程序。&lt;/p&gt;
&lt;h2 id="InfiniBand的特点及优势"&gt;InfiniBand 的特点及优势&lt;/h2&gt;
&lt;p&gt;InfiniBand 最突出的一个优势，就是率先引入了 RDMA（Remote Direct Memory Access）协议。RDMA 是一种绕过远程主机而访问其内存中数据的技术，解决网络传输中数据处理延迟而产生的一种远端内存直接访问技术。&lt;/p&gt;

&lt;p&gt;在传统的 TCP/IP 网络通信中，数据发送方需要将数据进行多次内存拷贝，并经过一系列的网络协议的数据包处理工作；数据接收方在应用程序中处理数据前，也需要经过多次内存拷贝和一系列的网络协议的数据包处理工作。&lt;/p&gt;

&lt;p&gt;而 RDMA 允许应用与网卡之间的直接数据读写，允许接收端直接从发送端的内存读取数据，RDMA 可以显著降低传输延迟，加快数据交换速度，并可以减轻 CPU 负载，释放 CPU 的计算能力。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/9e9a1277-d0da-41e5-af35-f273537d87f7.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;△ 传统传输 VS RDMA&lt;/p&gt;

&lt;p&gt;除了 InfiniBand 对 RDMA 协议的支持，还有以下优势：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; 低延迟：InfiniBand 网络以其极低的延迟而著称。RDMA 零拷贝网络减少了操作系统开销，使得数据能够在网络中快速移动，InfiniBand 网络延迟可达到 0.7 微秒。&lt;/li&gt;
&lt;li&gt; 高带宽：InfiniBand 网络提供高带宽的数据传输能力。它通常支持数十 Gb/s 甚至更高的带宽，取决于网络设备和配置。高带宽使得节点之间可以以高速进行数据交换，适用于大规模数据传输、并行计算和存储系统等应用。&lt;/li&gt;
&lt;li&gt; 可扩展性：IB 网络具有出色的可扩展性，适用于构建大规模计算集群和数据中心。它支持多级拓扑结构，如全局互连网络、树状结构和扁平结构，可以根据应用需求和规模进行灵活配置和扩展。此外，IB 网络还支持多个子网的互连，使得不同子网之间的节点可以进行通信和数据交换。这种可扩展性使得 IB 网络能够应对不断增长的计算和存储需求。&lt;/li&gt;
&lt;li&gt; 高吞吐量：由于低延迟和高带宽的特性，IB 网络能够实现高吞吐量的数据传输。它支持大规模数据流的并行传输，同时减少了中间处理和拷贝操作，提高了系统的整体性能。高吞吐量对于需要大规模数据共享和并行计算的应用非常重要，如科学模拟、大数据分析和机器学习。&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;在看了上文后，相信你对 InfiniBand 已经有了一定的了解。根据行业机构的预测，InfiniBand 的市场规模在 2029 年将达到 983.7 亿美元，相比 2021 年的 66.6 亿美元，增长 14.7 倍。在高性能计算和 AI 的强力推动下，InfiniBand 的发展前景令人期待。&lt;/p&gt;</description>
      <author>upyun</author>
      <pubDate>Fri, 03 Nov 2023 11:08:43 +0800</pubDate>
      <link>https://ruby-china.org/topics/43446</link>
      <guid>https://ruby-china.org/topics/43446</guid>
    </item>
    <item>
      <title>揭秘神秘的字符串匹配工具——正则表达式</title>
      <description>&lt;p&gt;正则表达式又称规则表达式（Regular Expression，在代码中常简写为 regex、regexp 或 RE），是一种用于匹配、查找、替换文本的强大工具。它能够以特定的模式匹配字符串，从而实现自动化文本处理。在许多编程语言中，正则表达式都被广泛用于文本处理、数据分析、网页抓取等领域。通过正则表达式，我们可以精确地筛选、操作和格式化文本，提高工作效率。&lt;/p&gt;

&lt;p&gt;正则表达式在日常生活中有着广泛的应用。比如，在处理电话号码时，我们可以使用正则表达式来验证号码的格式是否正确。中国的电话号码通常由 11 位数字组成，第一位为 1，第二位通常为 3-9，我们可以使用以下正则表达式来匹配这些号码：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/^1[3-9]\d{9}$/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;通过这个正则表达式，我们可以判断一个电话号码是否符合规范，从而避免出现错误的信息输入。&lt;/p&gt;
&lt;h2 id="什么是正则表达式"&gt;&lt;strong&gt;什么是正则表达式&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;每个正则表达式都有一个有限自动机（也称为状态机），它接受表达式指定的语言，并使用 Thompson 构造算法将正则表达式转化为一个与之等价的非确定有限状态自动机（NFA）。同时，对于每个有限自动机来说，还有一个描述该自动机所接受语言的正则表达式。该表达式可以通过克莱恩算法或高斯消元法生成。&lt;/p&gt;

&lt;p&gt;正则表达式的一个著名应用是文本编辑器中的搜索和替换功能，计算机先驱 Ken Thompson（UNIX 操作系统的开发者之一）首先在 20 世纪 60 年代的面向行编辑器 QED 中实现了该功能。此函数允许查找文本中的特定字符串，并根据需要将其替换为任何其他字符串。&lt;/p&gt;
&lt;h3 id="正则表达式如何工作"&gt;正则表达式如何工作&lt;/h3&gt;
&lt;p&gt;正则表达式可以仅使用正则字符（例如 abc），也可以使用正则字符和元字符的组合（例如 ab*c）。元字符的任务是描述某些字符的结构或排列，例如字符是否应位于行的开头，或者字符是否只出现一次或多次出现。上面提到的正则表达式示例的工作原理如下：  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  abc：简单的正则表达式模式 abc 需要完全匹配。换句话说，该表达式以精确的顺序搜索包含字符“abc”的所有字符串。例如可以匹配到：“a abc d”及“abc oulomb”。&lt;/li&gt;
&lt;li&gt;  ab*c：相比之下，具有特殊字符的正则表达式略有不同。星号代表表达式搜索以字母“a”开头并以字母“c”结尾的字符串。但是，a 和 c 之间可以有任意数量的 b。所以，“abc”以及字符串“abbbbc”和“cbb abbc ba”也构成了匹配。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/7957abbd-272f-41ad-8ab9-e1326e684991.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;每个正则表达式还可以链接到特定的操作，例如上面提到的“替换”操作。只要正则表达式为真，即只要存在上面示例中所述的匹配项，就会执行此操作。又拍云 CDN 的边缘规则中就支持类似场景，根据正则表达式匹配字符串，执行改写、跳转、访问控制、限速等需求。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/37b09686-c659-4d85-b1ea-732317dcfb5d.png!large" title="" alt=""&gt;&lt;/p&gt;
&lt;h3 id="使用正则表达式的挑战"&gt;使用正则表达式的挑战&lt;/h3&gt;
&lt;p&gt;掌握正则表达式可以提高我们编程和文本处理的能力，更加高效地处理大量数据和文本。然而，掌握和使用还是存在着一些挑战。  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  复杂性：正则表达式本身较为复杂，学习曲线陡峭，编写和理解复杂的正则表达式可能需要大量的时间和经验。&lt;/li&gt;
&lt;li&gt;  匹配效率：不合理的正则表达式可能导致效率低下，特别是在处理大量数据时。&lt;/li&gt;
&lt;li&gt;  不可读性：复杂的正则表达式可能难以理解，使得维护和调试变得困难。&lt;/li&gt;
&lt;li&gt;  学习成本：正则表达式的语法和特殊字符较多，需要一定的学习才能熟练使用。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;编写正则表达式时，最重要的是掌握以下几个核心概念：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  元字符：包括字符、反斜杠、方括号、星号、问号等，它们用于匹配特定的字符或字符集。&lt;/li&gt;
&lt;li&gt;  转义字符：使用反斜杠对特殊字符进行转义，以便匹配这些字符本身而不是其特殊含义。&lt;/li&gt;
&lt;li&gt;  限定符：用于指定正则表达式中前一个字符或子表达式出现的次数。例如，* 表示零次或多次，+ 表示一次或多次，? 表示零次或一次。&lt;/li&gt;
&lt;li&gt;  选择符：使用管道符号（|）表示可以选择多个模式中的任何一个进行匹配。&lt;/li&gt;
&lt;li&gt;  原子：用于指定一个精确的字符或字符集，例如 \d 表示数字字符，\w 表示字母、数字或下划线字符。&lt;/li&gt;
&lt;li&gt;  断言：用于指定一个位置而不是具体的字符或字符集，例如 ^ 表示行首，$ 表示行尾。&lt;/li&gt;
&lt;li&gt;  括号：用于将多个模式组合成一个更复杂的模式，并指定匹配的顺序。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;掌握了这些核心概念，就能够编写更准确、更复杂的正则表达式，以解决各种文本处理问题。&lt;/p&gt;
&lt;h2 id="哪些语法规则适用正则表达式"&gt;&lt;strong&gt;哪些语法规则适用正则表达式&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;正则表达式可以在多种语言中使用，例如 Perl、Python、Ruby、JavaScript、XML 或 HTML，但它们的用途或功能可能有很大不同。如在 JavaScript 中，正则表达式模式用于 search()、match() 或 replace() 字符串方法，而 XML 文档中的表达式用于分隔元素内容。不过就语法而言，在编程语言或标记语言中使用几乎没有任何区别。&lt;/p&gt;

&lt;p&gt;正则表达式可以由三个部分组成，无论使用哪种语言：&amp;nbsp;&lt;/p&gt;
&lt;table class="table table-bordered table-striped"&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;th&gt;Patterns（表达式）&lt;/th&gt;
&lt;th&gt;由元字符、普通字符和特殊字符组成，用于描述要匹配的文本模式。该模式可以仅由简单字符组成，也可以由简单字符和特殊字符的组合组成。&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Delimiters（分隔符）&lt;/td&gt;
&lt;td&gt;用于将正则表达式与其他文本区分开来。常用的分隔符是斜杠（/），但也可以使用其他字符作为分隔符。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Modifiers（修饰符）&lt;/td&gt;
&lt;td&gt;用于指定正则表达式的行为。常见的修饰符包括 i（忽略大小写）、m（多行模式）、s（将点号匹配任何字符，包括换行符）和 x（忽略空白字符）。&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;以下是用于表达式中的一些典型语法符号及注释：&lt;/p&gt;
&lt;table class="table table-bordered table-striped"&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;正则表达式语法的特殊字符&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;功能&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[]&lt;/td&gt;
&lt;td&gt;用于指定一个字符集，即可以匹配方括号内的任意一个字符。字符集可以包含单个字符、多个字符、字符范围等。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;()&lt;/td&gt;
&lt;td&gt;一个捕获组，用于将一组字符或模式捕获并保存起来，以便后续使用或匹配。捕获组可以用于提取子字符串、进行替换操作等。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;一个连字符，用于表示范围或指定范围。它可以用于字符集或重复次数的修饰符中。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;^&lt;/td&gt;
&lt;td&gt;在字符集中，^ 用于否定字符集；在断言中，^ 用于表示行的开头。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;$&lt;/td&gt;
&lt;td&gt;用于匹配字符串的结尾。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;.&lt;/td&gt;
&lt;td&gt;匹配任意字符的元字符。可以匹配除了换行符（\n、\r）之外的任何字符。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;*&lt;/td&gt;
&lt;td&gt;是一个限定符，用于指定前一个字符或子表达式出现的次数。它可以表示零次或多次。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;+&lt;/td&gt;
&lt;td&gt;是一个限定符，用于指定前一个字符或子表达式出现的次数。它可以表示一次或多次。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;？&lt;/td&gt;
&lt;td&gt;是一个限定符，用于指定前一个字符或子表达式出现的次数。它可以表示零次或一次。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;{n}&lt;/td&gt;
&lt;td&gt;是一个限定符，用于指定前一个字符或子表达式出现的次数。它表示前面的字符或子表达式必须精确出现 n 次。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;{n,m}&lt;/td&gt;
&lt;td&gt;是一个限定符，用于指定前一个字符或子表达式出现的次数范围。其中，n 表示最小次数，m 表示最大次数。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;{n,}&lt;/td&gt;
&lt;td&gt;是一个限定符，用于指定前一个字符或子表达式出现的次数范围，表示至少出现 n 次。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\b&lt;/td&gt;
&lt;td&gt;是一个边界断言符，用于指定一个单词的边界。它匹配一个单词的开头或结尾，即前后都是非单词字符（如空格、标点符号等）的位置。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\B&lt;/td&gt;
&lt;td&gt;是一个边界断言符，与 \b 相反。它匹配一个单词内部的位置，即前后都是单词字符的位置。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\d&lt;/td&gt;
&lt;td&gt;是一个字符类，用于匹配任意十进制数字。等价于 [0-9]。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\D&lt;/td&gt;
&lt;td&gt;是一个否定断言符，用于匹配非数字字符。它是一个反向匹配符，用于与数字字符进行区分。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\w&lt;/td&gt;
&lt;td&gt;是一个元字符，用于匹配一个单词字符。单词字符包括字母、数字和下划线 [a-zA-Z_0-9]。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;\W&lt;/td&gt;
&lt;td&gt;是一个反向字符断言符，用于匹配非字母数字字符。&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;当然，上面只是介绍了正则表达式的一些基础知识。正则表达式具有很高的灵活性和可塑性，从简单的文本编辑器到复杂的开发工具，都可以使用正则表达式进行文本处理。之前也提到了，又拍云 CDN 的边缘规则功能就运用到了正则表达式提取字符串，下面通过一些例子来了解一下它的强大之处。&lt;/p&gt;
&lt;h2 id="正则表达式在又拍云CDN的应用"&gt;&lt;strong&gt;正则表达式在又拍云 CDN 的应用&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;示例一：目录及参数改写&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;将请求 URL 转换为带参数的动态 URL，例如请求的 URL 为：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://example.com/pay/25/8/...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;需要 CDN 边缘节点转换为如下请求：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://example.com/pay.php?payid=25&amp;amp;categoryid=8...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这个时候，pattern 部分需要提取目录数字，需要生成 $1 和 $2 这样的变量，如下规则所示：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"rule": "/pay.php?productid=$1&amp;amp;categoryid=$2",
"pattern": "^pay/([0-9]+)/([0-9]+)/(.*?).html$"
&lt;/code&gt;&lt;/pre&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;规则释义：当解析的 url 符合规则&amp;nbsp;^pay/([0-9]+)/([0-9]+)/(.*?).html$，那么将请求导向到&amp;nbsp;/pay.php?productid=$1&amp;amp;categoryid=$2。&lt;/p&gt;

&lt;p&gt;也即将&amp;nbsp;&lt;a href="http://example.com/pay/25/8/" rel="nofollow" target="_blank"&gt;http://example.com/pay/25/8/&lt;/a&gt;... 转换为 &lt;a href="http://example.com/pay.php?payid=25&amp;amp;categoryid=8" rel="nofollow" target="_blank"&gt;http://example.com/pay.php?payid=25&amp;amp;categoryid=8&lt;/a&gt;...&lt;/p&gt;
&lt;h3 id="示例二：文件名改写"&gt;&lt;strong&gt;示例二：文件名改写&lt;/strong&gt;&lt;/h3&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pattern: /(.*)/playlist.m3u8$rule: /$1'.m3u8'
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;规则释义：当访问地址为&lt;a href="http://domain/app/stream/playlist.m3u8http://domain/app/stream.m3u8%E3%80%82" rel="nofollow" target="_blank"&gt;http://domain/app/stream/playlist.m3u8http://domain/app/stream.m3u8.&lt;/a&gt;时，将访问地址改写为&amp;nbsp;&lt;/p&gt;

&lt;p&gt;应用场景：在直播应用场景中，因为客户端机制无法或者不方便升级的情况，可以通过 URL 改写，将&amp;nbsp;/stream/playlist.m3u8&amp;nbsp;改为&amp;nbsp;/stream.m3u8，其中 app 代表发布点，stream 代表流名。&lt;/p&gt;
&lt;h3 id="示例三：URL 限速"&gt;&lt;strong&gt;示例三：URL 限速&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;假如请求的 URL 为：&lt;a href="http://test.example.com/mp4/4E10F356C0FEAD359C33DC5901307461-10.mp4" rel="nofollow" target="_blank"&gt;http://test.example.com/mp4/4E10F356C0FEAD359C33DC5901307461-10.mp4&lt;/a&gt;&amp;nbsp;，需要对该类型文件进行限速，限速要求为：前 20MB 不限速，20MB 之后限速 800 KB/s，规则可这样编写：&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"rule": "$WHEN($1, $EQ($_HOST, 'test.example.com'))$LIMIT_RATE_AFTER(20, m)$LIMIT_RATE(800, k)",
"pattern": "^(/).+-10.mp4$"
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;规则释义：当 $1 为真，且满足请求 HOST 为&amp;nbsp;test.example.com&amp;nbsp;时，开始 20MB 不限速，后面限制到 800KB/s。&lt;/p&gt;

&lt;p&gt;又拍云 CDN 边缘规则功能结合正则表达式，搭配处理操作，可以帮助您简化内容分发业务逻辑，并提升终端用户访问体验。该规则可以快速部署且配置简单，可极大降低业务实现成本。网站及 Web 应用开发者或者安全工程师可以快速创建边缘规则集来提升网站安全及分发性能。具体可以查看文档：&lt;a href="https://help.upyun.com/docs/edgerules/" rel="nofollow" target="_blank"&gt;https://help.upyun.com/docs/edgerules/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;最后，我来推荐一个好用的正则表达式匹配测试工具：&lt;a href="https://regex101.com/" rel="nofollow" target="_blank"&gt;https://regex101.com/&lt;/a&gt;,
可以快速测试哪些字符串能匹配规则，搭配规则详解，对于编写和测试超级方便。&lt;/p&gt;</description>
      <author>upyun</author>
      <pubDate>Tue, 31 Oct 2023 15:23:57 +0800</pubDate>
      <link>https://ruby-china.org/topics/43433</link>
      <guid>https://ruby-china.org/topics/43433</guid>
    </item>
    <item>
      <title>深入了解 GPU 互联技术——NVLINK</title>
      <description>&lt;p&gt;随着人工智能和图形处理需求的不断增长，多 GPU 并行计算已成为一种趋势。对于多 GPU 系统而言，一个关键的挑战是如何实现 GPU 之间的高速数据传输和协同工作。然而，传统的 PCIe 总线由于带宽限制和延迟问题，已无法满足 GPU 之间通信的需求。为了解决这个问题，NVIDIA 于 2018 年推出了 NVLINK，以提高 GPU 之间的通信效率。&lt;/p&gt;
&lt;h2 id="了解 NVLINK"&gt;了解 NVLINK&lt;/h2&gt;
&lt;p&gt;NVLINK 是一种专门设计用于连接 NVIDIA GPU 的高速互联技术。它允许 GPU 之间以点对点方式进行通信，绕过传统的 PCIe 总线，实现了更高的带宽和更低的延迟。NVLINK 可用于连接两个或多个 GPU，以实现高速的数据传输和共享，为多 GPU 系统提供更高的性能和效率。  &lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/34b722ed-06f3-48cf-9187-9830fb644f2b.gif!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;NVLINK 采用串行协议，使用 P2P 连接进行数据传输。它支持双向数据传输，每个方向都有高达 32GB/s 的带宽。这意味着两个 GPU 之间可以实现总共高达 64GB/s 的带宽。&lt;/p&gt;

&lt;p&gt;此外，NVLINK 支持多通道通信，允许同时进行多个数据传输会话。它还支持 CUDA 核心直接访问显存，使得 GPU 可以更高效地处理数据。&lt;/p&gt;
&lt;h3 id="NVLINK 的架构"&gt;NVLINK 的架构&lt;/h3&gt;
&lt;p&gt;NVLINK 的架构包括 NVLINK 桥接器和 NVLINK 交换机。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/94c698db-0611-4a78-9a69-681b7abd54bc.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;NVLINK 桥接器是用于 GPU 与其他设备（如 CPU、内存或其他 GPU）之间通信的组件。它提供了一组 NVLINK 接口，可以将 GPU 连接到其他设备上。而 NVLINK 交换机是用于 GPU 之间通信的组件。它提供了一组 NVLINK 连接端口，可以将多个 GPU 相互连接起来。NVLINK 交换机可以位于 GPU 芯片内部或外部，从而形成 NVLINK 通信网络。&lt;/p&gt;
&lt;h3 id="NVLINK的工作流程"&gt;NVLINK 的工作流程&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;1. 寻址和初始化&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;在使用 NVLINK 进行通信之前，需要对目标 GPU 进行寻址和初始化。这通常通过设置 GPU 设备的地址和端口号来完成。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. 数据传输&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;一旦寻址和初始化完成，就可以开始进行数据传输。NVLINK 支持两种数据传输模式：DMA 和 P2P。&lt;/p&gt;

&lt;p&gt;DMA 模式：在 DMA 模式下，CPU 可以通过 NVLink 桥接器直接将数据传输到目标 GPU 的显存中。这个过程不需要目标 GPU 的参与，因此可以有效地提高数据传输效率。&lt;/p&gt;

&lt;p&gt;P2P 模式：在 P2P 模式下，两个 GPU 之间可以直接进行数据传输。这种模式通常用于在 GPU 之间共享数据或进行并行计算任务。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. 数据接收和处理&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;目标 GPU 在接收到数据后，会对其进行处理或存储。在这个过程中，GPU 可以使用 CUDA 核心直接访问显存，以实现高效的数据处理。&lt;/p&gt;
&lt;h2 id="NVLINK VS PCIe"&gt;NVLINK VS PCIe&lt;/h2&gt;
&lt;p&gt;按照总线接口类型，可以分为 NVLINK 接口以及 PCIe 总线两种。&lt;/p&gt;

&lt;p&gt;其中 NVLINK 接口类型的 GPU 典型代表是 NVIDIA A100，采用 SXM4 接口。NVLINK 总线接口类型的 GPU 服务器可以分为两类，一类是 NVIDIA 公司设计的 DGX 超级计算机，另一类是合作伙伴设计的 NVLINK 接口的服务器。专门的 HGX 系统板通过 NVLINK 将 8 个 GPU 互连起来，实现了 GPU 之间的高带宽。&lt;/p&gt;

&lt;p&gt;接下来，我们看看 NVLINK 与 PCIe 究竟有什么区别？&lt;/p&gt;

&lt;p&gt;NVLINK 和 PCIe 都是用于设备间通信的高速接口，但它们在架构、设计和应用方面具有一些关键差异。&lt;/p&gt;

&lt;p&gt;NVLINK 主要用于 NVIDIA 的 GPU 之间，以实现高效的并行计算和数据共享。NVLINK 互联设备的物理层包括两个高速数据通道和一个控制通道，提供高达 64GB/s 的带宽。&lt;/p&gt;

&lt;p&gt;PCIe 则是一种通用的高速串行计算机扩展总线标准，广泛用于包括 NVIDIA GPU 在内的各种设备之间的通信。PCIe 信号线数量和带宽可以根据具体的应用进行配置，例如在 PCIe 5.0 x16 配置中，信号线数量为 32 对，带宽为 504GB/s。&lt;/p&gt;

&lt;p&gt;在通信带宽方面，NVLINK 具有更高的单向和双向带宽。NVLINK 3.0 的 x18 配置下，每个方向的数据速率可达 25 Gbit/s，总带宽达到 7200 Gbit/s。而 PCIe 5.0 x16 的单向带宽为 504 Gbit/s。但如果考虑到双向带宽，PCIe 5.0 x16 的理论双向带宽可达 126 GB/s，这要高于 NVLINK 的 7200 Gbit/s。&lt;/p&gt;

&lt;p&gt;此外，NVLINK 的特点在于其 8 对差分线组成的一根 sub-link，一对 sub-link 负责一个方向的传输，组成一个完整的 link。这种设计使得 NVLINK 在进行大量数据传输时能保持较低的延迟。而 PCIe 作为行业标准，具有很好的通用性，可以灵活地与其他设备进行互联，并且支持更高的通道数和更低的延迟。&lt;/p&gt;

&lt;p&gt;总的来说，NVLINK 和 PCIe 都是高速互联技术，具有各自的优势和应用领域。在需要高带宽、低延迟的并行计算和数据共享场景中，NVLINK 可能会更有优势。而在需要灵活通用、可扩展性强的应用中，PCIe 可能会更合适。&lt;/p&gt;
&lt;h2 id="常见的应用场景"&gt;常见的应用场景&lt;/h2&gt;
&lt;p&gt;NVLINK 的应用场景非常广泛。以下是一些主要的应用领域：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; 高性能计算：在高性能计算领域，多 GPU 和多处理器系统的需求日益增长。NVLINK 通过提供高速互联和高带宽通信，可以显著提高这类系统的计算性能。例如，在气象预测、物理模拟、生物计算等应用中，使用 NVLINK 连接的多 GPU 系统可以处理更大规模的数据集，并更快地得出结果。&lt;/li&gt;
&lt;li&gt; 人工智能和深度学习：随着人工智能和深度学习技术的发展，大规模数据处理和并行计算的需求也在不断增加。NVLINK 可以用于构建高效的人工智能和深度学习训练平台，通过并行计算和高速数据传输来提高训练速度和效率。&lt;/li&gt;
&lt;li&gt; 数据中心：在数据中心环境中，NVLINK 可以用于实现 GPU 和 CPU 之间的高速数据传输，从而提高数据处理和应用性能。例如，使用 NVLINK 连接的 GPU 可以加速数据库查询、视频转码等任务的速度。&lt;/li&gt;
&lt;li&gt; 图形渲染：在图形渲染领域，NVLINK 可以提高 GPU 之间的协作和通信效率。例如，在复杂的 3D 渲染场景中，多个 GPU 可以通过 NVLINK 进行高效的并行计算，以实现更快的渲染速度和更高的图像质量。&lt;/li&gt;
&lt;li&gt; 游戏开发：在游戏开发领域，NVLINK 可以提高 GPU 之间的数据传输速度和渲染效率。这可以使游戏开发者实现更流畅的帧率和更高质量的图像渲染，从而提供更好的游戏体验。&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;最后我们来简单总结下，NVLINK 是一种高速互联技术，用于在多 GPU 之间提供高效的通信和协作。它通过在 GPU 的 PCIe 插槽上添加额外的物理层来实现高速通信，支持高达 64GB/s 的带宽和低延迟通信。NVLINK 的并行计算支持大幅提高了多 GPU 系统的计算能力和性能，使其在高性能计算、人工智能、深度学习等领域具有广泛的应用前景。看完这些，相信你对 NVLINK 已经有了一定的了解。&lt;/p&gt;</description>
      <author>upyun</author>
      <pubDate>Mon, 09 Oct 2023 14:27:23 +0800</pubDate>
      <link>https://ruby-china.org/topics/43374</link>
      <guid>https://ruby-china.org/topics/43374</guid>
    </item>
    <item>
      <title>各快 100 倍？4G、5G、6G 相差这么多吗</title>
      <description>&lt;p&gt;二狗子今天晚上有点 emo，为什么呢？&lt;/p&gt;

&lt;p&gt;原来是二狗子心心念很久的一个手游上线了，二狗子兴冲冲地下载了 40 多分钟，终于下载完了游戏。结果打开游戏一看，发现游戏内部的更新写着预计 30 分钟完成更新。这就把二狗子搞得 emo 了。&lt;/p&gt;

&lt;p&gt;二狗子突然发现自己的室友已经在这款游戏的新手村大杀四方了。&lt;/p&gt;

&lt;p&gt;“你怎么这么快？”二狗子问。&lt;/p&gt;

&lt;p&gt;“我用手机流量下载的，5G，当然快。”室友都没看二狗子一眼，沉浸在自己的游戏世界里。&lt;/p&gt;

&lt;p&gt;5G 真的有这么快吗？好学的二狗子就让游戏保持着后台更新，在网上冲浪学习下知识充实自己。&lt;/p&gt;
&lt;h2 id="5G发展得如何？"&gt;5G 发展得如何？&lt;/h2&gt;
&lt;p&gt;二狗子首先想了解下 5G 发展得如何了，就在百度上搜索了下。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;5G 自被提出以来，截至 2023 年 5 月，95 个国家 (地区) 的 256 家网络运营商推出商用 5G 服务，全球 5G 人口覆盖率约 30.6%。中国建成 5G 基站 264.6 万个，占全球比例超过 60%。全球 5G 用户达到 11.5 亿，中国占比 58%。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;“全球 11.5 亿 5G 用户，中国占 58%，那就是 6.67 亿，中国人口现在是 14 亿，也就是将近一半的人都用上了 5G。”二狗子看着自己的苹果 11 手机，原本觉得还能再战 2 年，现在不禁陷入了沉思。&lt;/p&gt;

&lt;p&gt;“4G 也挺好用的呀，平时打游戏、发微信也一点都不卡呀。5G 真的有这么牛吗？”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;更快的速度&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;二狗子使用的 4G 都是低频段，它的优点在于性能好，覆盖面广，但缺点就是用的人多，数据传输的“路”就会出现拥窄现象。尽管已经对现有的技术进行过优化，但速率的提供依旧有限。而 5G 使用的就是高频段，使用高频不但能缓解低频资源的紧张，由于没有拥窄现象，使得“道路”更加宽广，提高带宽的速率。&lt;/p&gt;

&lt;p&gt;在理想情况下，5G 可以提供高达 10Gbps 的峰值数据下载速率，4G 的峰值速率大概为 100Mbps，速度提升 100 倍。也就意味着，用户使用 5G 能在几秒内下载 1G 大小的高清视频。&lt;/p&gt;

&lt;p&gt;而以常用的视频业务为例，4G 网络的平均用户体验速度下行为 30-50Mbps、上行为 6-8Mbps，能够满足一路高清视频的在线播放需求，而 4K 直播视频需要最低 25Mbps 的下载速度，4G 基本达不到这个要求，会出现卡顿、超高延迟等现象、而 5G 网络的平均用户体验速度下行为 100Mbps、上行为 50Mbps，在 5G 环境下 4K 视频直播成为可能。另外，VR/AR 对带宽的需求是巨大的，5G 让 VR 等虚拟化实现成为可能。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;增强的安全能力&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;基于前几代移动通信演进过程中累积的经验，5G 网络对安全机制考虑更加充分，具有更全面的数据安全保护、更丰富的认证机制支持、更严密的用户隐私保护及更灵活的网间信息保护。&lt;/p&gt;

&lt;p&gt;数据安全保护&lt;/p&gt;

&lt;p&gt;从 3G 到 4G，通信系统只对网络信令进行完整性保护、避免被恶意篡改，并未对用户数据进行完整性保护。而在 5G 通信中，数据应用越来越广泛，除了对网络信令进行完整性保护，还增强了对用户数据的完整性保护，确保用户数据在空中接口传输时不被恶意篡改。&lt;/p&gt;

&lt;p&gt;认证机制支持&lt;/p&gt;

&lt;p&gt;相较于之前的通信网络，5G 具有更丰富的认证机制支持，不仅增强了归属网络对认证的控制，还具有灵活的可拓展框架。&lt;/p&gt;

&lt;p&gt;5G 支持多种接入技术，如 4G 接入、WLAN 接入以及 5G 接入，为了使用户可以在不同接入网间无缝切换，5G 在认证方面集成了 3G 时候使用的 AKA(Authentication and Key Agreement) 框架，但机制和能力上做了一定的增强，不仅提供对用户的认证，还提供对访问网络的认证。另外，5G 采用统一的认证框架，新引入扩展认证协议 EAP，其支持多种认证协议和各种应用场景下的双向身份鉴权，让认证机制支撑更加丰富。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;用户隐私保护&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;在用户隐私保护方面，5G 相对于之前的通信网络具备更严密的加密措施，能在更大力度上保护用户隐私不受侵犯。&lt;/p&gt;

&lt;p&gt;5G 通信网络利用用户卡上存储的归属运营商的公钥对永久用户标识进行加密，不再明文传输国际移动用户识别码。为抵御中间人攻击，归属运营商的公钥直接预置在用户卡内，有效地保护了用户的隐私。其次，在 5G 通信网络中，切片选择辅助信息 NSSAI (Network Slice Selection Assistance Information) 可区分不同类型的 5G 网络切片，在用户初始接入网络时，NSSAI 知识基站及核心网网元将其路由到正确的切片网络，5G 网络可对 NSSAI 敏感信息进行隐私保护。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;网间信息保护&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;5G 网络中引入了 SEPP，其作为运营商核心网控制面之间的边界网关，所有跨运营商的信息传输均需要通过 SEPP 进行处理和转发，SEPP 在运营商之间建立 TLS 安全传输通道，对传输的信息中需要进行保护的字段进行机密性和完整性保护，从而有效防止数据在传输过程中被篡改和窃听。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/d54a37b0-f325-4cf1-abad-d6705c9ac50d.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;强大的边缘计算能力&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;与 4G 时代不同，云端协同的方式已经不足以满足部分业务的需求，而是出现了云 - 边-端一体的解决方案，以满足对网络传输和服务计算的延时提出了更高需求的新业务。边缘计算作为 5G 时代新型网络架构的主要特征之一，部署在无线基站等网络边缘，将计算能力和服务能力下沉，就近向用户提供服务。&lt;/p&gt;
&lt;h2 id="浅聊 6G"&gt;浅聊 6G&lt;/h2&gt;
&lt;p&gt;二狗子在了解了 5G 后，不禁感慨 5G 的强大。突然看到一篇《比 5G 快 100 倍的 6G 要来了》标题的文章。二狗子大感吃惊，5G 的速度已经是 4G 的 100 倍了，那 6G 不是相当于 4G 的一万倍。二狗子被文章的标题吸引，忍不住点了进去，看完文章后大概对 6G 有了一定的了解。&lt;/p&gt;

&lt;p&gt;6G 是更先进的下一代移动通信系统，其内涵将远超通信范畴。6G 如同一个巨大的分布式神经网络，集通信、感知、计算等能力于身，深度融合物理世界、生物世界和数字世界，真正开启“万物智联”的新时代。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/206fa82a-9c98-415e-b247-4393b5c565a0.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;6G 提供通用、高性能的无线连接，在速度上可媲美光纤。大家对 6G 无线接入网的期待非常高，Tbps 级峰值速率、10~100Gbps 体验速率、亚毫秒级时延、十倍于 5G 的连接密度、厘米级定位、毫米级成像、基于可控误差分布的端到端系统可靠性等指标的达成，不仅能实现以人为本的沉浸式业务，还将加速垂直行业的全面数字化转型和生产力升级。&lt;/p&gt;

&lt;p&gt;与 5G 的微基站无法做到全面覆盖不同，6G 将整合地面网络和非地面网络，提供全球覆盖，给当前未联网的区域提供网络连接。随着卫星制造和发射成本的降低，众多低轨或超低轨 (LEO/LEO) 卫星将应用于非地面网络，大型超低轨卫星极有可能成为 6G 的重要组成部分。超低轨卫星系统的定位也更精确，这不仅对自动驾驶有着决定性的影响，在地球感测与成像方面也发挥着重要作用。&lt;/p&gt;

&lt;p&gt;另外，6G 还可以做到原生 AI 支持、通感一体化、原生数据保护以及绿色可持续发展，在各个维度都比 5G 强大了不少。&lt;/p&gt;

&lt;p&gt;二狗子在了解完 5G 和 6G 相关知识后，又看了下手机后台的游戏仍然在更新中，觉得原来还能再战两年的手机瞬间不香了，他咬咬牙决定换一个更“香”的支持 5G 的手机……&lt;/p&gt;</description>
      <author>upyun</author>
      <pubDate>Mon, 18 Sep 2023 14:59:06 +0800</pubDate>
      <link>https://ruby-china.org/topics/43343</link>
      <guid>https://ruby-china.org/topics/43343</guid>
    </item>
    <item>
      <title>为什么大家都在用 WebP？</title>
      <description>&lt;p&gt;WebP 是谷歌在 2010 年提出的一种新型的图片格式，放到现在来讲，已经不算是“新”技术了，毕竟已经有了更新的 JPEG XL 和 AVIF。但是在日常工作中，大家时常会碰到保存下来的图片的后缀是 .webp。那么 WebP 到底有什么魔力，让越来越多的网站“抛弃”常用的 PNG、JPG 而青睐它呢？&lt;/p&gt;
&lt;h2 id="了解 WebP"&gt;&lt;strong&gt;了解 WebP&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;长期以来，加载速度一直是优化网站最重要的因素之一，访问者和搜索引擎都将调用页面所需的时间作为重要的评价标准。精简的代码或使用缓存机制是解决网站快速加载方案的一部分，而网页中展示的图片大小也影响着加载速度，这时 WebP 就有了用武之地。&lt;/p&gt;

&lt;p&gt;WebP 图片格式来源于 VP8 视频编解码器，也就是 WebM 视频容器，是 WebM 视频格式的单个压缩框架。VP8 编解码器的一个强大功能就是能够进行帧内压缩，能将视频的每个帧都被压缩，再压缩帧与帧之间的差异。WebP 的压缩算法分为有损压缩算法和无损压缩算法。&lt;/p&gt;

&lt;p&gt;有损压缩算法：基于 VP8 视频编解码器，它可以通过牺牲一些图像细节来减小文件大小。有损压缩算法可以根据图像的特征和颜色分布等信息，选择最佳的压缩方式和参数，以达到最小化文件大小的目的。&lt;/p&gt;

&lt;p&gt;无损压缩算法：基于 LZ77 算法和 ANS 编码器，它可以在保持完整图像的情况下减小文件大小。无损压缩算法可以根据图像的特征和颜色分布等信息，选择最佳的压缩方式和参数。&lt;/p&gt;

&lt;p&gt;WebP 的高效压缩和快速加载速度，使其成为网页设计的理想格式。WebP 广泛应用于许多网站和应用程序中，包括 Google Chrome 浏览器、YouTube、Facebook、Pinterest 和 WordPress 等。虽然前几年有部分浏览器不支持 WebP，到了今天，除了已经退休的 IE 浏览器，基本上浏览器都已经开放支持 WebP。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/23dfcf91-d618-4766-88ad-3b510adce75a.png!large" title="" alt=""&gt;&lt;/p&gt;
&lt;h2 id="WebP 的优势"&gt;WebP 的优势&lt;/h2&gt;
&lt;p&gt;对于含有大量图片的网站，它们大部分会使用 WebP 格式的图片，不仅可以减少流量带宽，也可以减少用户访问的加载时间，提高用户体验。目前 WebP 已成为主流网站喜欢的图片格式。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;更小的文件大小&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;相较于传统的 PNG、JPG，甚至是动图 GIF 的格式，WebP 比它们的空间更小。根据谷歌的测试，WebP 格式的图片可以比 JPEG 格式的图片小 26%-34%，比 PNG 格式的图片小 25%-34 %。
&lt;img src="https://l.ruby-china.com/photo/upyun/82fc0705-f0ae-4792-9767-0c6b93872470.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;更快的加载速度&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;由于 WebP 格式的图片文件更小，所以可以更快地加载和显示，提高用户的访问速度和体验。特别是在移动设备和低带宽环境下，WebP 格式的图片可以更快地加载和显示，减少用户的等待时间和流量消耗。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;高质量的图像显示&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;WebP 格式的图片可以提供高质量的图像显示效果，尤其是在有损压缩的情况下，可以保持比 JPEG 格式更好的图像质量。这是因为 WebP 格式的图片采用了基于 VP8 视频编解码器的压缩算法，可以在牺牲一部分细节的情况下保持更好的图像质量。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;支持透明度、动画效果&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;WebP 格式的图片不仅可以支持有损和无损的压缩方式，还支持透明度和动画效果。特别是在处理透明度和动画效果时，WebP 格式的图片可以比 GIF 和 PNG 格式更小，同时保持更好的显示效果。&lt;/p&gt;
&lt;h2 id="在网页中运用 WebP"&gt;&lt;strong&gt;在网页中运用 WebP&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;既然 WebP 这么好用，那么如何在网页中运用 WebP 图片呢？这其实很简单，我们可以通过 HTML 代码，在网页中运用 WebP 格式的图片。例如：xml&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;picture&amp;gt;
  &amp;lt;source srcset="image.webp" type="image/webp"&amp;gt;
  &amp;lt;source srcset="image.jpg" type="image/jpeg"&amp;gt;
  &amp;lt;img src="image.jpg" alt="image"&amp;gt;
&amp;lt;/picture&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在上面的代码中， 元素包含了两个  元素和一个 &lt;img&gt; 元素。 元素用于指定不同格式的图片，&lt;img&gt; 元素则是在所有格式的图片都无法显示时显示的默认图片。替换：对于不支持 WebP 格式的浏览器，可以使用 JavaScript 进行检测和替换。例如：stylus&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var img = new Image();
img.onload = function() {
  if (img.width &amp;gt; 0 &amp;amp;&amp;amp; img.height &amp;gt; 0) {
    document.getElementById('my-img').src = 'image.webp';
  }
}
img.onerror = function() {
  document.getElementById('my-img').src = 'image.jpg';
}
img.src = 'image.webp';
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在上面的代码中，使用 JavaScript 创建一个新的 Image 对象，并指定其 src 属性为 WebP 格式的图片。如果图片能够正常加载，则将 &lt;img&gt; 元素的 src 属性设置为 WebP 格式的图片，否则将其设置为其他格式的图片。&lt;/p&gt;

&lt;p&gt;这时，也有用户会担心，并不是所有的浏览器都支持 WebP，例如 IE。这里强烈推荐下又拍云 WebP 自适应功能，无需网站服务器和前端等层面技术上的任何改动，就能解除你的顾虑。在后台一键开启 WebP 自适应功能，即可通过 CDN 平台智能判断客户端浏览器是否支持 WebP 解码，如果支持则返回 WebP 格式图片，如果不支持则会返回原图，在客户端以及源站无需任何改动。
&lt;img src="https://l.ruby-china.com/photo/upyun/610b1b17-5f3d-426c-a07a-cf714c0f34ac.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;技术的发展总是迅速的，近两年来 JPEG XL 和 AVIF 两种新兴的图片格式已经逐渐开始流行，它们在压缩效率、图像细节保留等方面已经在一定程度上超过了 WebP，让我们期待一下未来的图片格式发展吧。&lt;/p&gt;</description>
      <author>upyun</author>
      <pubDate>Wed, 13 Sep 2023 15:29:12 +0800</pubDate>
      <link>https://ruby-china.org/topics/43326</link>
      <guid>https://ruby-china.org/topics/43326</guid>
    </item>
    <item>
      <title>从驾考科目二到自动驾驶，聊聊 GPU 为什么对自动驾驶很重要</title>
      <description>&lt;p&gt;“下一个项目，坡道起步。”&lt;/p&gt;

&lt;p&gt;……&lt;/p&gt;

&lt;p&gt;“考试不合格，请将车子开到起点，重新验证考试。你的扣分项是：起步时间超 30 秒：扣 100 分。行驶过程中车轮轧到边线：扣 100 分。”&lt;/p&gt;

&lt;p&gt;想必经历过驾驶证考试的同学，对科目二的坡道起步都有说不清道不明的情感。我在坡道起步项目上连续“挂”了 3 次后，就忍不住想自动驾驶什么时候可以普及，来拯救多次驾考没过的我。为此，我去简单了解了自动驾驶，不经意间发现又拍云的 GPU 竟然在自动驾驶上也有应用，接下来就来详细说说。&lt;/p&gt;
&lt;h2 id="关于自动驾驶"&gt;关于自动驾驶&lt;/h2&gt;&lt;h3 id="自动驾驶的发展历程"&gt;自动驾驶的发展历程&lt;/h3&gt;
&lt;p&gt;自动驾驶技术的发展可以追溯到 20 世纪 80 年代，当时的研究主要集中在车辆的辅助驾驶系统上，如自适应巡航控制、自动泊车等。随着计算机技术和传感器技术的不断进步，自动驾驶技术逐渐走向成熟。21 世纪初，谷歌开始研究自动驾驶技术，并在 2010 年左右开始进行路测。目前，自动驾驶技术已经成为了汽车行业的重要发展方向，各大车企和科技公司纷纷投入巨资进行研究和开发。&lt;/p&gt;

&lt;p&gt;国内各大品牌的电车自动驾驶能力在不同程度上都有了发展和进步，可以在高速公路和城市道路上实现自动跟车、自动变道、自动泊车等功能，这些能力离不开先进的感应设备：激光雷达（Lidar），毫米波雷达（Millimeter-wave Radar），摄像头（Camera），超声波雷达（Ultrasonic Radar），GPS（Global Positioning System）以及 INS（Inertial Navigation System）等设备。&lt;/p&gt;

&lt;p&gt;而在即将举办亚运会的绍兴棒垒球场馆外，出现了可爱的纯电动巴士，它是 L4 自动驾驶小巴车，不仅可以自动完成转弯及靠站操作，遇障还会自动减速避让。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/53035d3b-ff4f-4899-be41-c8eb796aef61.png!large" title="" alt=""&gt;
绍兴市已经向两家自动驾驶测试主体发放了全市首批自动驾驶路测牌照，其中一家是未来社区开发建设有限公司，另一家是绍兴市城投阿波罗科技有限公司。这些测试主体将使用不同类型的自动驾驶汽车，包括纯电动巴士和纯电动轿车，未来社区使用的是一款 5.5 米纯电动巴士，最高设计时速 40 公里，搭载了 L4 级自动驾驶系统，可实现车道保持、超级巡航、自动避障等功能。市民可通过新推出的小程序，在手机上免费预约乘坐。该专线也将在杭州亚运会期间提供接驳服务。&lt;/p&gt;
&lt;h3 id="自动驾驶技术分级"&gt;自动驾驶技术分级&lt;/h3&gt;
&lt;p&gt;上面提到了 L4 级别自动驾驶，这是非常领先的级别了，根据自动驾驶等级的不同，可以分为以下几级：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  L0 级别：人工驾驶，完全由驾驶员来操作驾驶汽车，包括转向、制动、油门等。&lt;/li&gt;
&lt;li&gt;  L1 级别：辅助驾驶，能够帮助驾驶员完成某些驾驶任务，如转向、制动、油门等，但驾驶员仍需保持对道路的注意。&lt;/li&gt;
&lt;li&gt;  L2 级别：部分自动驾驶，车辆能够完成部分驾驶任务，如对方向盘和加减速中的多项操作提供驾驶，驾驶员负责其余的驾驶动作。像全速自适应巡航就属于 L2 级别，可以跟着前面的车走，前面的车停，我也停，前面的车走了我也走，速度基本保持一致。&lt;/li&gt;
&lt;li&gt;  L3 级别：条件自动驾驶，车辆在特定环境中可以实现自动加减速和转向，但仍需要人类驾驶员在某些情况下接管车辆控制。&lt;/li&gt;
&lt;li&gt;  L4 级别：高度自动驾驶，除了一些非常特殊的情况外，一般不需要人工控制。&lt;/li&gt;
&lt;li&gt;  L5 级别：完全自动驾驶，全程不需要人工干预，可以在所有路况下实现完全自动驾驶。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;总的来说，每一级别的自动驾驶都建立在前一级别的技术基础之上，同时，每一级别的自动驾驶都不是绝对安全的，它需要驾驶员在使用过程中仍然保持警惕并做好随时接管的准备。&lt;/p&gt;
&lt;h2 id="GPU在自动驾驶技术中的作用"&gt;GPU 在自动驾驶技术中的作用&lt;/h2&gt;
&lt;p&gt;目前国内汽车普遍搭载的是 L2 级别及以下的自动驾驶技术，但即便在这些较低级别的自动驾驶系统中，汽车中的各种传感器每小时也可以生成 25GB 数据，这些数据包含前车和本车的距离，左右两边的道路指示标志，周围汽车的距离，前方道路指示标志，红绿灯信号，马路边行人，非机动车等信息等，大量的图像和视频信息被转换成电脑能处理的二进制信息，这就需要 CPU 和 GPU 的共同加持才能完成安全稳定的自动驾驶工作。&lt;/p&gt;

&lt;p&gt;大家都知道一台电脑的运行少不了 CPU，可以简单地理解为 CPU 是一个教授级人物，CPU 可以处理非常复杂的问题，但 CPU 没有那么多核心，对于同时处理数以亿计的小学生算术题，比如 100000000 道算术题，需要在 1 秒内完成，这个教授就没有那么灵活了。而 GPU 核心多，像 Nvidia 的 A100 拥有 6912 个 CUDA 核心，这种庞大的计算量就非常适合 GPU 了。在某些情况下，传统在 CPU 上运行的代码优化为 GPU 上运行时，执行速度最高可提升 20 倍。借助人工智能加速器可以进一步提升，从而显著节约电力，而这也是电动汽车的一个关键问题。&lt;/p&gt;

&lt;p&gt;GPU 作为驾驶系统的核心元件之一，让汽车可以在“环境感知与建模”、“路径规划与决策”、“感知与决策的实时性”、“数据处理与存储”等方面完成指定的任务。GPU 通过其强大的计算能力和并行处理能力来加速感知算法的运行，不仅仅加速了复杂的路径规划和决策算法，例如基于强化学习的算法。还提供了更快的计算速度和更高的并行处理能力，从而帮助自动驾驶汽车更快地做出决策和规划。&lt;/p&gt;

&lt;p&gt;现在市面上已经有不少车规级芯片都搭载强大的 GPU，例如 NVIDIA 去年发布的车规级芯片 DRIVE Thor SoC，它可提供 2000 TFLOPS，强大的算力可在单个计算平台上实现全车的智能驾驶和座舱功能。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/36ec1fea-5fe9-460e-a317-8be052f8f70c.png!large" title="" alt=""&gt;
国内各大品牌汽车中都能看到 GPU 的身影，例如小鹏汽车的智能驾驶系统搭载了 Xavier 超级计算平台，CPU 采用 NVIDIA 自研 8 核 ARM64 架构，GPU 采用 512 颗 CUDA 的 Volta，支持 FP32/FP16/INT8，20W 功耗下单精度浮点性能 1.3TFLOPS，Tensor 核心性能 20TOPs，解锁到 30W 后可达 30TOPs。&lt;/p&gt;
&lt;h2 id="未来的自动驾驶"&gt;未来的自动驾驶&lt;/h2&gt;
&lt;p&gt;随着人工智能技术和传感器技术的不断进步，未来自动驾驶技术的发展将呈现出以下几个趋势：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; 汽车智能化：随着车辆智能化程度的提高，自动驾驶技术的发展将得到进一步推动。未来，汽车将具备更智能的功能，如自动充电、自动保养等。汽车会通过更加先进的感应器感知周围环境，并进行自适应的驾驶，进一步降低交通事故风险。&lt;/li&gt;
&lt;li&gt; 实现智能交通系统：未来的道路交通将不再是各车辆独立行驶，而将更加智能化和自动化。智能交通系统将会将各车辆的行驶信息进行集中处理和控制，从而实现更为协调和高效的交通流动。这种智能交通系统将与智能驾驶系统完美结合，使交通运输更为便捷和高效。&lt;/li&gt;
&lt;li&gt; 多传感器融合：在高等级自动驾驶的实现过程中，多传感器融合成为必然趋势。这种趋势旨在将各类传感器获取的数据信息集中在一起综合分析，以求更加准确描述外部环境，为车辆进行决策打下基础。&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;自动驾驶技术是汽车行业的重要发展方向之一。GPU 作为自动驾驶技术中的重要组成部分，将在未来的发展中发挥更加重要的作用。随着人工智能技术和传感器技术的不断进步，未来自动驾驶技术的发展将更加智能、安全、便捷和可持续。我们期待着自动驾驶技术的不断发展和进步，为人们带来更加美好的出行体验和生活方式。&lt;/p&gt;

&lt;p&gt;如果你对 GPU 相关技术感兴趣，你可以点击“阅读原文”查看我们的 GPU 云服务器，你可以用它尝试搭建 AI 绘画平台或者做一些推理的工作。AI 绘画搭建的教程我先放在这里啦：《&lt;a href="http://mp.weixin.qq.com/s?__biz=MjM5ODc5ODgyMw==&amp;amp;mid=2653589993&amp;amp;idx=1&amp;amp;sn=3c5b5bbff751376beab5cea430df68b2&amp;amp;chksm=bd1b05618a6c8c77d7da34fa9a3a91711062f4789f6bc800502ac2896bc400536218c24859e7&amp;amp;scene=21#wechat_redirect" rel="nofollow" target="_blank" title=""&gt;从 0 到 1，带你玩转 AI 绘画&lt;/a&gt;》&lt;/p&gt;</description>
      <author>upyun</author>
      <pubDate>Thu, 07 Sep 2023 14:48:20 +0800</pubDate>
      <link>https://ruby-china.org/topics/43313</link>
      <guid>https://ruby-china.org/topics/43313</guid>
    </item>
    <item>
      <title>聊透 GPU 通信技术——GPU Direct、NVLink、RDMA 审核中</title>
      <description>&lt;p&gt;最近人工智能大火，AI 应用所涉及的技术能力包括语音、图像、视频、NLP 等多方面，而这些都需要强大的计算资源支持。AI 技术对算力的需求是非常庞大的，虽然 GPU 的计算能力在持续提升，但是对于 AI 来说，单卡的计算能力就算再强，也是有极限的，这就需要多 GPU 组合。而 GPU 多卡的组合，主要分为单个服务器多张 GPU 卡和多个服务器，每个服务器多张卡这两种情况，无论是单机多卡还是多机多卡，GPU 之间需要有超强的通信支持。接下来，我们就来聊聊 GPU 通信技术。&lt;/p&gt;
&lt;h2 id="单机多卡GPU通信"&gt;&lt;strong&gt;单机多卡 GPU 通信&lt;/strong&gt;&lt;/h2&gt;&lt;h4 id="GPU Direct"&gt;GPU Direct&lt;/h4&gt;
&lt;p&gt;GPU Direct 是 NVIDIA 开发的一项技术，可实现 GPU 与其他设备（例如网络接口卡 (NIC) 和存储设备）之间的直接通信和数据传输，而不涉及 CPU。&lt;/p&gt;

&lt;p&gt;传统上，当数据需要在 GPU 和另一个设备之间传输时，数据必须通过 CPU，从而导致潜在的瓶颈并增加延迟。使用 GPUDirect，网络适配器和存储驱动器可以直接读写 GPU 内存，减少不必要的内存消耗，减少 CPU 开销并降低延迟，从而显著提高性能。GPU Direct 技术包括 GPUDirect Storage、GPUDirect RDMA、GPUDirect P2P 和 GPUDirect 视频。&lt;/p&gt;
&lt;h4 id="GPUDirect Storage"&gt;&lt;strong&gt;GPUDirect Storage&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;GPUDirect Storage 允许存储设备和 GPU 之间进行直接数据传输，绕过 CPU，减少数据传输的延迟和 CPU 开销。&lt;/p&gt;

&lt;p&gt;通过 GPUDirect Storage，GPU 可以直接从存储设备（如固态硬盘（SSD）或非易失性内存扩展（NVMe）驱动器）访问数据，而无需将数据先复制到 CPU 的内存中。这种直接访问能够实现更快的数据传输速度，并更高效地利用 GPU 资源。
&lt;img src="https://l.ruby-china.com/photo/upyun/96afc7e2-692b-4fc0-be58-917638feaeb9.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;GPUDirect Storage 的主要特点和优势包括：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  减少 CPU 参与：通过绕过 CPU，实现 GPU 和存储设备之间的直接通信，GPUDirect Storage 减少了 CPU 开销，并释放 CPU 资源用于其他任务，从而改善系统的整体性能。&lt;/li&gt;
&lt;li&gt;  低延迟数据访问：GPUDirect Storage 消除了数据通过 CPU 的传输路径，从而最小化了数据传输的延迟。这对于实时分析、机器学习和高性能计算等对延迟敏感的应用非常有益。&lt;/li&gt;
&lt;li&gt;  提高存储性能：通过允许 GPU 直接访问存储设备，GPUDirect Storage 实现了高速数据传输，可以显著提高存储性能，加速数据密集型工作负载的处理速度。&lt;/li&gt;
&lt;li&gt;  增强的可扩展性：GPUDirect Storage 支持多 GPU 配置，允许多个 GPU 同时访问存储设备。这种可扩展性对于需要大规模并行处理和数据分析的应用至关重要。&lt;/li&gt;
&lt;li&gt;  兼容性和生态系统支持：GPUDirect Storage 设计用于与各种存储协议兼容，包括 NVMe、NVMe over Fabrics 和网络附加存储（NAS）。它得到了主要存储供应商的支持，并集成到流行的软件框架（如 NVIDIA CUDA）中，以简化与现有的 GPU 加速应用程序的集成。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="GPUDirect P2P"&gt;&lt;strong&gt;GPUDirect P2P&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;某些工作负载需要位于同一服务器中的两个或多个 GPU 之间进行数据交换，在没有 GPUDirect P2P 技术的情况下，来自 GPU 的数据将首先通过 CPU 和 PCIe 总线复制到主机固定的共享内存。然后，数据将通过 CPU 和 PCIe 总线从主机固定的共享内存复制到目标 GPU，数据在到达目的地之前需要被复制两次。
&lt;img src="https://l.ruby-china.com/photo/upyun/8e686c3b-3d94-48a1-95f7-6c93ffe3ffa0.gif!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;有了 GPUDirect P2P 通信技术后，将数据从源 GPU 复制到同一节点中的另一个 GPU 不再需要将数据临时暂存到主机内存中。如果两个 GPU 连接到同一 PCIe 总线，GPUDirect P2P 允许访问其相应的内存，而无需 CPU 参与。前者将执行相同任务所需的复制操作数量减半。
&lt;img src="https://l.ruby-china.com/photo/upyun/afe5307e-412f-4394-87c0-677e51aad92a.gif!large" title="" alt=""&gt;&lt;/p&gt;
&lt;h3 id="NVLink"&gt;NVLink&lt;/h3&gt;
&lt;p&gt;在 GPUDirect P2P 技术中，多个 GPU 通过 PCIe 直接与 CPU 相连，而 PCIe3.0*16 的双向带宽不足 32GB/s，当训练数据不断增长时，PCIe 的带宽满足不了需求，会逐渐成为系统瓶颈。为提升多 GPU 之间的通信性能，充分发挥 GPU 的计算性能，NVIDIA 于 2016 年发布了全新架构的 NVLink。NVLink 是一种高速、高带宽的互连技术，用于连接多个 GPU 之间或连接 GPU 与其他设备（如 CPU、内存等）之间的通信。NVLink 提供了直接的点对点连接，具有比传统的 PCIe 总线更高的传输速度和更低的延迟。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  高带宽和低延迟：NVLink 提供了高达 300 GB/s 的双向带宽，将近 PCle 3.0 带宽的 10 倍。点对点连接超低延迟，可实现快速、高效的数据传输和通信。&lt;/li&gt;
&lt;li&gt;  GPU 间通信：NVLink 允许多个 GPU 之间直接进行点对点的通信，无需通过主机内存或 CPU 进行数据传输。&lt;/li&gt;
&lt;li&gt;  内存共享：NVLink 还支持 GPU 之间的内存共享，使得多个 GPU 可以直接访问彼此的内存空间。&lt;/li&gt;
&lt;li&gt;  弹性连接：NVLink 支持多种连接配置，包括 2、4、6 或 8 个通道，可以根据需要进行灵活的配置和扩展。这使得 NVLink 适用于不同规模和需求的系统配置。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;NVSwitch&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;NVLink 技术无法使单服务器中 8 个 GPU 达到全连接，为解决该问题，NVIDIA 在 2018 年发布了 NVSwitch，实现了 NVLink 的全连接。NVIDIA NVSwitch 是首款节点交换架构，可支持单个服务器节点中 16 个全互联的 GPU，并可使全部 8 个 GPU 对分别达到 300GB/s 的速度同时进行通信。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/ccb6e6b4-21e4-4897-9086-c0323897b0db.png!large" title="" alt=""&gt;
△ NVSwitch 全连接拓扑&lt;/p&gt;
&lt;h2 id="多机多卡GPU通信"&gt;&lt;strong&gt;多机多卡 GPU 通信&lt;/strong&gt;&lt;/h2&gt;&lt;h3 id="RDMA"&gt;RDMA&lt;/h3&gt;
&lt;p&gt;AI 计算对算力需求巨大，多机多卡的计算是一个常态，多机间的通信是影响分布式训练的一个重要指标。在传统的 TCP/IP 网络通信中，数据发送方需要将数据进行多次内存拷贝，并经过一系列的网络协议的数据包处理工作；数据接收方在应用程序中处理数据前，也需要经过多次内存拷贝和一系列的网络协议的数据包处理工作。经过这一系列的内存拷贝、数据包处理以及网络传输延时等，服务器间的通信时延往往在毫秒级别，不能够满足多机多卡场景对于网络通信的需求。&lt;/p&gt;

&lt;p&gt;RDMA（Remote Direct Memory Access）是一种绕过远程主机而访问其内存中数据的技术，解决网络传输中数据处理延迟而产生的一种远端内存直接访问技术。&lt;/p&gt;

&lt;p&gt;目前 RDMA 有三种不同的技术实现方式：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; InfiniBand（IB）：IB 是一种高性能互连技术，它提供了原生的 RDMA 支持。IB 网络使用专用的 IB 适配器和交换机，通过 RDMA 操作实现节点之间的高速直接内存访问和数据传输。&lt;/li&gt;
&lt;li&gt; RoCE（RDMA over Converged Ethernet）：RoCE 是在以太网上实现 RDMA 的技术。它使用标准的以太网作为底层传输介质，并通过使用 RoCE 适配器和适当的协议栈来实现 RDMA 功能。&lt;/li&gt;
&lt;li&gt; iWARP：iWARP 是基于 TCP/IP 协议栈的 RDMA 实现。它使用普通的以太网适配器和标准的网络交换机，并通过在 TCP/IP 协议栈中实现 RDMA 功能来提供高性能的远程内存访问和数据传输。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="GPUDirect RDMA"&gt;GPUDirect RDMA&lt;/h3&gt;
&lt;p&gt;GPUDirect RDMA 结合了 GPU 加速计算和 RDMA（Remote Direct Memory Access）技术，实现了在 GPU 和 RDMA 网络设备之间直接进行数据传输和通信的能力。它允许 GPU 直接访问 RDMA 网络设备中的数据，无需通过主机内存或 CPU 的中介。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/f5b5e166-487a-401b-8abb-3ac904ec24b0.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;GPUDirect RDMA 通过绕过主机内存和 CPU，直接在 GPU 和 RDMA 网络设备之间进行数据传输，显著降低传输延迟，加快数据交换速度，并可以减轻 CPU 负载，释放 CPU 的计算能力。另外，GPUDirect RDMA 技术允许 GPU 直接访问 RDMA 网络设备中的数据，避免了数据在主机内存中的复制，提高了数据传输的带宽利用率&lt;/p&gt;
&lt;h3 id="IPOIB"&gt;IPOIB&lt;/h3&gt;
&lt;p&gt;IPOIB（IP over InfiniBand）是一种在 InfiniBand 网络上运行 IP 协议的技术。它将标准的 IP 协议栈与 IB 互连技术相结合，使得在 IB 网络上的节点能够使用 IP 协议进行通信和数据传输。&lt;/p&gt;

&lt;p&gt;IPOIB 提供了基于 RDMA 之上的 IP 网络模拟层，允许应用无修改的运行在 IB 网络上。但是，IPoIB 仍然经过内核层（IP Stack），会产生大量系统调用，并且涉及 CPU 中断，因此 IPoIB 性能比 RDMA 通信方式性能要低，大多数应用都会采用 RDMA 方式获取高带宽低延时的收益，少数的关键应用会采用 IPoIB 方式通信。&lt;/p&gt;

&lt;p&gt;在大规模计算中，单机多卡场景下使用 GPUDiect、NVLink 技术，分布式场景下使用 GPUDirect RDMA 技术，可以大大缩短通信时间，提升整体性能。&lt;/p&gt;

&lt;p&gt;如果你对 GPU 相关技术感兴趣，你可以用它尝试搭建 AI 绘画平台或者做一些推理的工作。AI 绘画搭建的教程我先放在这里啦：《&lt;a href="https://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMjM5ODc5ODgyMw%3D%3D%26mid%3D2653589993%26idx%3D1%26sn%3D3c5b5bbff751376beab5cea430df68b2%26chksm%3Dbd1b05618a6c8c77d7da34fa9a3a91711062f4789f6bc800502ac2896bc400536218c24859e7%26scene%3D21%23wechat_redirect" rel="nofollow" target="_blank" title=""&gt;从 0 到 1，带你玩转 AI 绘画&lt;/a&gt;》&lt;/p&gt;</description>
      <author>upyun</author>
      <pubDate>Tue, 05 Sep 2023 14:43:22 +0800</pubDate>
      <link>https://ruby-china.org/topics/43306</link>
      <guid>https://ruby-china.org/topics/43306</guid>
    </item>
    <item>
      <title>这个 AI 机器人会怼人，它是怎么做到的？</title>
      <description>&lt;p&gt;近期，机器人“Ameca”接入了 Stable Diffusion，它一边与旁边的人类工程师谈笑风生，一边熟练地用马克笔在白板上画出一只简笔的猫，最后还在白板右下角签名。
&lt;img src="https://pic1.zhimg.com/80/v2-e396a5ffa4177a0c6a0192768ef6c0dc_720w.gif?source=d16d100b" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;当 Ameca 询问工程师是否对它的作品是否满意时，工程师回答“这画得有点简略了”。Ameca 生气地“怼”了回去：“如果你不喜欢我的画，可能只是不懂艺术”。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://pica.zhimg.com/80/v2-ba5ac3038dc5ebba0ae4490f527b8d35_720w.gif?source=d16d100b" title="" alt=""&gt;
大家也可以从图中 Ameca 皱起的眉头中，读出她的不满。现在人工智能已经这么像人了，它是如何做到的呢？&lt;/p&gt;
&lt;h2 id="什么是人工智能"&gt;什么是人工智能&lt;/h2&gt;
&lt;p&gt;人工智能可以定义为计算机科学的一个分支，其目标是创造与人类智力相当的技术。但智力到底是什么？如何利用技术来复制智力？这个疑问并不存在单一的理解，目前已经有了许多理论和方法来回答这些问题。&lt;/p&gt;

&lt;p&gt;人工智能的实现方式主要有两种：一种是基于规则的人工智能，通过预先编写的规则和逻辑来实现特定的任务；另一种是基于机器学习的人工智能，通过让计算机从数据中学习和优化算法，来实现特定的任务。基于规则的人工智能主要适用于一些特定的领域，如游戏、推理等，而基于机器学习的人工智能则更加通用，可以应用于很多不同的领域，如自然语言处理、计算机视觉等。当前的人工智能技术主要是为了技术任务而开发的。这种类型的人工智能技术不太注重掌握人类交流的艺术，而更注重以有效的方式执行高度专业化的任务。如果一个技术系统能够达到与人类相当的水平（例如，在进行医疗诊断或下棋时），则它被认为是一个人工智能系统。在特定任务或知识领域表现出类人的能力导致了人工智能两种定义的发展：强人工智能和弱人工智能。&lt;/p&gt;
&lt;h3 id="愿景：强人工智能"&gt;愿景：强人工智能&lt;/h3&gt;
&lt;p&gt;强人工智能是指在各种条件下，可以像人类一样进行思考、感知、认知和做出决策的人工智能系统。它不仅可以完成特定的任务，而且可以理解、学习、适应和改变，具有高度的自主性和创造力。强人工智能被认为是人工智能领域的最高目标和最终目标，但是目前尚未实现。智力不是一维的。它涵盖了认知、感觉、运动、情感和社交能力。目前人工智能的大部分应用都在认知智能领域，即逻辑、规划、解决问题、自给自足和个人观点的形成。这是不是有点像文章开头的机器人 Ameca。&lt;/p&gt;
&lt;h3 id="实际：弱人工智能"&gt;实际：弱人工智能&lt;/h3&gt;
&lt;p&gt;弱人工智能的定义是人工智能的开发和应用发生在明确定义、标记的领域。这就是人工智能此时此刻所处的位置。当前人工智能的几乎所有用途都可以被定义为弱的，但无疑也很专业。自动驾驶汽车、医疗诊断和智能搜索算法的发展就是一个很好的例子。&lt;/p&gt;

&lt;p&gt;过去几年，弱人工智能领域的研究取得了突破性的成功。各个领域智能系统的发展已经证明，与超级智能的研究相比，它不仅非常实用，而且从伦理上讲危害也更小。人工智能应用的领域极其多样化，眼下的人工智能在医学、金融、运输、营销，还有在线领域取得了巨大的成功。&lt;/p&gt;
&lt;h2 id="符号&amp;amp;神经元人工智能"&gt;符号&amp;amp;神经元人工智能&lt;/h2&gt;
&lt;p&gt;人工智能领域有两种重要的方法，即符号方法和神经元方法。&lt;/p&gt;
&lt;h3 id="符号人工智能"&gt;符号人工智能&lt;/h3&gt;
&lt;p&gt;符号人工智能是一种基于逻辑和知识表示的人工智能方法。它的基本思想是将知识表示为符号，并通过规则或算法进行推理和决策。其主要优点是逻辑清晰、规则明确，可以处理符号和逻辑关系，适用于问题求解和知识表示。然而，符号方法需要手动构建规则和知识库，无法处理复杂和非结构化的数据，以及需要大规模的计算资源。符号人工智能的经典用途是文字处理和语音识别，还有其他逻辑活动，例如下棋。符号人工智能基于设定的规则工作，随着计算能力的增强，可以解决日益复杂的问题。在 1997 年，IBM 的深蓝已经能够赢得与当时的世界冠军加里·卡斯帕罗夫的国际象棋比赛。符号人工智能有以下优点：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  可解释性较强：使用符号和规则来表示知识和推理过程，推理过程可以被解释和理解。&lt;/li&gt;
&lt;li&gt;  精度较高：可以提供精确的推理和决策，尤其在处理逻辑推理和数学问题时表现优异。&lt;/li&gt;
&lt;li&gt;  可扩展性强：可以轻松扩展和修改知识库和规则，从而应对新的情况和问题。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="神经元人工智能"&gt;神经元人工智能&lt;/h3&gt;
&lt;p&gt;神经元人工智能是一种基于神经网络的人工智能方法，它使用神经网络来模拟人脑神经元之间的连接和交互，从而实现对数据的学习和处理。神经网络由多个神经元组成，每个神经元都有多个输入和一个输出。神经元之间的连接和权重可以通过训练来优化，从而实现对数据的学习和分类。这些神经元形成群体，并变得越来越大，从而形成多样化且分支的人工神经元网络。与符号人工智能不同的是，神经元网络是经过训练的。例如，机器人技术通过感觉运动数据来完成学习。根据这些经验，人工智能生成了不断增长的知识库。神经元方法的学习和训练需要大量的数据和计算资源，与符号人工智能不同，其得出的结论可解释性较差，难以理解其决策和行为的背后原因。智能机器人能够学会怼人，是大语言模型学习的功劳，而大语言模型的学习是基于神经网络算法的，它使用了 RNN 或者 Transformer 网络来学习自然语言，通过反向传播算法来更新网络的权重和参数，从而实现对文本数据的建模和预测。这也是让机器人在沟通上更像人的主要原因。在实际应用中，可以将符号方法和神经元方法相结合，以充分利用两者的优势，实现更高效和智能的人工智能系统。&lt;/p&gt;
&lt;h2 id="市面上常见的人工智能"&gt;市面上常见的人工智能&lt;/h2&gt;
&lt;p&gt;无论是面部识别、语音助手还是翻译软件，人工智能已经成为我们日常生活中的一部分。即使你有意识地避免使用此类工具，也很难摆脱人工智能在数字环境中的影响。例如，人工智能系统在电商平台的产品推荐以及短视频平台的播放推荐方面发挥着重要作用，这些系统旨在为您提供越来越适合您偏好的建议。&lt;/p&gt;

&lt;p&gt;下面是目前市面上常见的一些人工智能的：&lt;/p&gt;

&lt;p&gt;ChatGPT：ChatGPT 是由 Open AI 开发的人工智能聊天机器人。该软件可以理解文本输入并回答问题以及生成、重写和翻译文本。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/330ab65a-9a55-472b-8bd8-743146dca8b6.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  RankBrain：RankBrain 是 Google 的一种人工智能算法，最初开发的目的是为了更好地理解首次搜索时可能未知的搜索查询。2015 年，谷歌宣布 Rankbrain 是继链接和内容之后谷歌搜索 200 多个排名因素中第三重要的因素。这意味着 RankBrain 对 SEO 有着很大的影响。&lt;/li&gt;
&lt;li&gt;  DeepMind：DeepMind 于 2014 年被谷歌收购，是一家创造了许多创新人工智能技术的公司，其中包括 AlphaGo（掌握棋盘游戏围棋的计算机程序）。2023 年 4 月，谷歌宣布将公司与其内部人工智能部门 Google Brain 合并。DeepMind 通过为人工智能配备短期记忆而在人工智能研究领域脱颖而出。&lt;/li&gt;
&lt;li&gt;  Voice.ai：通过 Voice.ai 程序，可以实时用不同的声音说话，例如好莱坞明星或其他著名名人的声音。该软件还可以根据用户输入进行训练，让用户可以为语音配置文件配上自己的录音。&lt;/li&gt;
&lt;li&gt;  DALL-E：AI 系统 DALL-E 可以在几秒钟内根据书面输入创建令人印象深刻且独特的 2D 和 3D 图像。OpenAI 软件的公开测试版已于 2022 年 9 月推出。据开发团队称，该应用程序每天创建超过 200 万张图像。&lt;/li&gt;
&lt;li&gt;  文心一言：文心一言是百度研发的知识增强大语言模型，能够与人对话互动，回答问题，协助创作，高效便捷地帮助人们获取信息、知识和灵感。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;人工智能发展速度之快、应用领域之广令人惊叹。它不仅深刻地改变了我们的生活方式，也在推动着社会各个领域的创新和发展。尽管人工智能的未来充满了挑战和不确定性，但我们可以预见其巨大的潜力和可能性。随着技术的不断进步和发展，我们有理由相信人工智能将在未来带来更多的惊喜和创新。让我们期待这个充满无限可能的未来吧！对了，如果你也想尝试下 AI 绘画，可以根据我们之前的教程《&lt;a href="http://mp.weixin.qq.com/s?__biz=MjM5ODc5ODgyMw==&amp;amp;mid=2653589993&amp;amp;idx=1&amp;amp;sn=3c5b5bbff751376beab5cea430df68b2&amp;amp;chksm=bd1b05618a6c8c77d7da34fa9a3a91711062f4789f6bc800502ac2896bc400536218c24859e7&amp;amp;scene=21#wechat_redirect" rel="nofollow" target="_blank" title=""&gt;从 0 到 1，带你玩转 AI 绘画&lt;/a&gt;》来搭建自己的 AI 作图环境哦，画出好看的小姐姐不要太简单哦。&lt;/p&gt;</description>
      <author>upyun</author>
      <pubDate>Fri, 01 Sep 2023 15:07:28 +0800</pubDate>
      <link>https://ruby-china.org/topics/43302</link>
      <guid>https://ruby-china.org/topics/43302</guid>
    </item>
    <item>
      <title>如何评估计算机的算力：从 CPU 到 GPU 的演变</title>
      <description>&lt;p&gt;计算机的算力一直是科学技术发展的重要驱动力之一。从最早的计算机到现代的超级计算机，计算机的算力不断提高，为人类社会带来了前所未有的变革。其中，CPU（中央处理器）和 GPU（图形处理器）是计算机中最为核心的两个组件，它们的算力和性能对于计算机的整体性能具有决定性的影响。&lt;/p&gt;
&lt;h2 id="CPU和GPU"&gt;&lt;strong&gt;CPU 和 GPU&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;CPU 是计算机的核心组件之一，它的主要功能是执行指令、控制计算机的运行和处理数据等任务。CPU 通常由运算器、控制器、寄存器和高速缓存等组件构成。CPU 的算力通常由其时钟频率、处理器核心数量、缓存大小等指标来衡量。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  时钟频率：CPU 每秒钟可以执行的指令次数，通常用 GHz 表示。&lt;/li&gt;
&lt;li&gt;  处理器核心数量：CPU 中包含的处理器核心数，可以同时处理多个任务。&lt;/li&gt;
&lt;li&gt;  缓存大小：CPU 内置的高速缓存容量，可以加速数据的读取和写入。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;早期计算机的 CPU 算力较低，通常只能执行简单的指令。随着从单核心 CPU 到多核心 CPU，再到现在的高性能多核心 CPU，CPU 的算力和性能已经取得了巨大的飞跃。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/1f00d2a7-4a2c-47aa-bfe0-b46ae8a7934e.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;目前，主流的 CPU 都是多核心 CPU，多核心 CPU 可以同时执行多个任务，大幅提升了计算机的算力和性能。例如，英特尔的酷睿 i9-13900K 处理器，采用 24 核心 32 线程设计，时钟频率高达 5.8 GHz，性能非常强劲。&lt;/p&gt;

&lt;p&gt;图形处理器（GPU）是计算机中的另一个重要组件，主要用于处理图形和视频。与中央处理器（CPU）不同，GPU 的并行计算能力更强，因此在某些应用中比 CPU 更具优势。&lt;/p&gt;

&lt;p&gt;GPU 通常位于计算机主板上独立的插槽中，并且通常由多个处理器核心和大量的显存组成。GPU 的主要功能是执行图形和视频处理任务，例如 3D 游戏、视频编解码、图形渲染等。&lt;/p&gt;

&lt;p&gt;GPU 的算力通常由其核心数量、时钟频率、存储带宽等指标来衡量。与 CPU 不同，GPU 的核心数量通常是数百个，甚至上千个。存储带宽是 GPU 的显存和其他组件之间传输数据的速度，通常用 GB/s 表示。&lt;/p&gt;
&lt;h2 id="CPU VS GPU"&gt;&lt;strong&gt;CPU VS GPU&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;CPU 和 GPU 是计算机中的两个重要组件，它们各自具有不同的特点和优势。  &lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/fe818212-8a68-4811-b3b4-269d69d2d68a.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;下面将从架构设计、计算能力、能耗和散热、价格和可用性、应用场景等方面来探讨 CPU 和 GPU 的比较。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;计算能力&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/66a2b987-11c3-41ae-a91f-57b40d6056e2.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;构成 CPU 和 GPU 的组件是类似的：它们都包含控制单元、算术逻辑单元 (ALU)、高速缓存和 DRAM。主要区别在于 GPU 具有更小、更简单的控制单元、ALU 和缓存，而且数量很多。因此，虽然 CPU 可以处理任何任务，但 GPU 可以非常快速地完成某些特定任务。GPU 的设计目的是为了实现高效的图形和视频处理、机器学习等应用。&lt;/p&gt;

&lt;p&gt;举个形象的例子，你可以把 CPU 理解成为一个学识渊博的教授，而 GPU 是一群小学生，算 100 个小学生吧，只会做一些简单的计算。现在两者要做一个比赛，看哪方先算完 100 道简单的加减算术题。毫无疑问，100 个小学生的速度是远远快于教授的。但如果要做一道高数题，那结果就是相反的，学识渊博的教授算完的时候，100 个小学生估计还在蒙圈中。这就是 CPU 和 GPU 在计算能力上的区别，这是由它们的架构决定的，CPU 可以执行任何程序，而 GPU 转为多任务而生，并发能力强。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;能耗和散热&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GPU 通常比 CPU 更加耗电和发热，因为 GPU 的处理器核心数量更多，需要更多的电力和散热系统。因此，在设计计算机系统时需要考虑散热和电源供应等因素。此外，GPU 通常需要额外的散热器和风扇来保持温度和性能。&lt;/p&gt;

&lt;p&gt;此外，GPU 通常比 CPU 更昂贵，因为 GPU 的设计和制造成本较高。此外，GPU 的供应量也比 CPU 更少。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;应用场景&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;CPU 通常用于处理大量的数据、执行复杂的算法、处理多任务等复杂应用。CPU 还可以用于运行各种操作系统和软件程序。GPU 则主要用于图形和视频处理、机器学习等需要大量并行计算的应用。&lt;/p&gt;

&lt;p&gt;之前 NVIDIA 在参加一档节目时，演示了 GPU 和 CPU 的区别，大家可以看下这两个动态图。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/119b900f-fa65-4d7c-8792-c7ef0bbbf4b0.gif!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;△ CPU 绘画，图片来源于互联网侵删&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/f7923932-54fe-4365-88b5-2aba2578dbc7.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;△ GPU 绘画，图片来源于互联网侵删&lt;/p&gt;

&lt;p&gt;当然，上面的两张图并不是说 GPU 比 CPU 厉害，事实上，CPU 和 GPU 各自具有不同的特点和优势，选择哪种设备取决于具体的应用场景和需求。在一些需要高并行计算能力的应用中，例如上面的绘画，GPU 通常比 CPU 更具优势；而在一些单线程应用中，CPU 则具有更高的性能。因此，根据实际情况选择合适的 CPU 和 GPU，可以实现最佳的性能和效率。&lt;/p&gt;

&lt;p&gt;近期 AIGC 的大火，也让 GPU 再次火爆了起来。GPU 作为一种高效的并行计算设备，未来还可能在更多的新兴领域得到广泛应用，例如：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  自动驾驶：自动驾驶技术需要处理大量的视觉和传感器数据，并实时进行决策和控制。GPU 高效的计算和数据处理，为自动驾驶系统提供强大的计算能力和实时响应能力。&lt;/li&gt;
&lt;li&gt;  区块链技术：区块链技术需要处理大量的数据，并实现加密和解密操作。GPU 高效的数据处理和加密解密操作，为区块链技术提供高效的计算能力和安全保障。&lt;/li&gt;
&lt;li&gt;  虚拟现实和增强现实：VR 和 AR 需要实时渲染和处理大量的图像和视频数据。GPU 可以实现高效的图形处理和渲染操作，为虚拟现实和增强现实提供流畅的图像和视频体验。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;CPU 和 GPU 的演变历程经历了从单核心到多核心、从图形处理到通用计算、从高性能计算到 AI 计算的不断发展和进化。这些技术的演进不断推动着计算机技术的进步和应用的创新。随着技术的不断发展，计算机算力将继续得到提升，为各种应用场景提供更高效、更快速的计算能力。最后，如果你对 AI 绘画感兴趣，可以根据我们之前的教程《&lt;a href="https://link.zhihu.com/?target=http%3A//mp.weixin.qq.com/s%3F__biz%3DMjM5ODc5ODgyMw%3D%3D%26mid%3D2653589993%26idx%3D1%26sn%3D3c5b5bbff751376beab5cea430df68b2%26chksm%3Dbd1b05618a6c8c77d7da34fa9a3a91711062f4789f6bc800502ac2896bc400536218c24859e7%26scene%3D21%23wechat_redirect" rel="nofollow" target="_blank" title=""&gt;从 0 到 1，带你玩转 AI 绘画&lt;/a&gt;》来搭建自己的 AI 作图环境哦，画出好看的小姐姐不要太简单哦。&lt;/p&gt;</description>
      <author>upyun</author>
      <pubDate>Fri, 25 Aug 2023 15:24:47 +0800</pubDate>
      <link>https://ruby-china.org/topics/43291</link>
      <guid>https://ruby-china.org/topics/43291</guid>
    </item>
    <item>
      <title>浅谈 Linux 下 vim 的使用</title>
      <description>&lt;p&gt;Vim 是从 vi 发展出来的一个文本编辑器，其代码补全、编译及错误跳转等方便编程的功能特别丰富，在程序员中被广泛使用。&lt;/p&gt;

&lt;p&gt;Vi 是老式的字处理器，功能虽然已经很齐全了，但还有可以进步的地方。Vim 可以说是程序开发者的一项很好用的工具。对于大多数用户来说，Vim 刚开始学习的时候可能会进展缓慢，但是一旦掌握一些基本操作之后，就能大幅度提高编辑效率。今天我们就来简单介绍下 Vim 及其基本操作。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vim 的三种模式&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;从 vi 派生出来的 Vim 具有多种模式，这种独特的设计容易使初学者产生混淆。几乎所有的编辑器都会有插入和执行命令两种模式，并且大多数的编辑器使用了与 Vim 截然不同的方式：命令目录（鼠标或者键盘驱动），组合键（通常通过 ctrl 键和 alt 键组成）或者鼠标输入。Vim 和 vi 一样，仅仅通过键盘来在这些模式之中切换。这就使得 Vim 可以不用进行菜单或者鼠标操作，并且最小化组合键的操作。对文字录入员或者程序员可以大大增强速度和效率。&lt;/p&gt;

&lt;p&gt;基本上，Vim 可以分为命令模式、插入模式和底线模式三种模式，各模块的功能区分如下：&lt;/p&gt;
&lt;h3 id="命令模式："&gt;&lt;strong&gt;命令模式：&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;使用 vim 编辑文件时，默认处于命令模式。在此模式下可以使用上、下、左、右键或者 k、j、h、l 键进行光标的移动，还可以对文件内容进行复制、粘贴、替换、删除等操作。&lt;/p&gt;
&lt;h3 id="插入模式："&gt;&lt;strong&gt;插入模式：&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;在该模式下可以对文件进行写的操作，类似于 windows 的文档操作。进入插入模式的方法是在命令模式下按 "i"或者"a"或者"o"，编写完成后按 Esc 即可回到命令模式。&lt;/p&gt;

&lt;p&gt;i：从光标目前所在位置插入所输入的字符&lt;/p&gt;

&lt;p&gt;a：从目前光标所在位置的下一个字符处插入所输入的字符&lt;/p&gt;

&lt;p&gt;o：插入新的一行从行首开始输入&lt;/p&gt;
&lt;h3 id="底线模式："&gt;&lt;strong&gt;底线模式：&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;如果要保存、查找或者替换一些内容等，就需要进入底线模式。底线模式的进入方法为：在命令模式下按":"键，Vim 窗口的左下方会出现一个":"符号，这时就可以输入相关的指令进行操作了。指令执行后会自动返回命令模式。&lt;/p&gt;
&lt;h2 id="Vim 的基本操作"&gt;&lt;strong&gt;Vim 的基本操作&lt;/strong&gt;&lt;/h2&gt;&lt;h3 id="一、打开文件或者新建文件"&gt;&lt;strong&gt;一、打开文件或者新建文件&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;统一命令：vim 文件名&lt;/p&gt;

&lt;p&gt;例子：vim 11.txt&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/66cd0e02-1384-47b6-bf39-b466f4d3a61a.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;然后在页面的左下角可以看到文件的信息，行数和字符数，例如上图：3 行、426 个字符。&lt;/p&gt;
&lt;h3 id="二、光标的移动"&gt;&lt;strong&gt;二、光标的移动&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;以字符为单位移动，在命令模式中使用 h、j、k、l 这 4 个字符控制方向，分别表示向左、向下、向上、向左&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  按 G：移动到文件最后&lt;/li&gt;
&lt;li&gt;  按 gg: 移动到文件的开头&lt;/li&gt;
&lt;li&gt;  按 0 或者^: 光标移动到所在行的行首&lt;/li&gt;
&lt;li&gt;  按 $: 光标移动到所在行的行尾&lt;/li&gt;
&lt;li&gt;  按 ctrl+f 往下翻一页&lt;/li&gt;
&lt;li&gt;  按 ctrl+b 往上翻一页&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="三、插入模式"&gt;&lt;strong&gt;三、插入模式&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;当处于插入模式，左下角的状态如下图所示：&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/d37a5ddd-58f1-43d3-bf1a-bab871f91a3a.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;当编辑完成，就可以按 Esc 退出插入模式，进入到命令模式。可以使用 Shift+zz 命令保存退出，其他保存和退出命令见下文。&lt;/p&gt;
&lt;h3 id="四、底线模式"&gt;&lt;strong&gt;四、底线模式&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【保存和退出】&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;字母"w"：保存不退出；&lt;/p&gt;

&lt;p&gt;字母"q"：不保存退出；&lt;/p&gt;

&lt;p&gt;字符"!"：强制性操作；&lt;/p&gt;

&lt;p&gt;也可以 wq 这样直接保存退出&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;【显示行号】&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;显示行号：set nu&lt;/p&gt;

&lt;p&gt;不显示：set nonu&lt;/p&gt;

&lt;p&gt;直接到某行：在底线模式下直接输入数字就可以到想到的行，如果输入的数字比文档的行数多就会到最后一行。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;【搜索】&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;想要搜索某个词可以直接在底线模式输入：/要搜索的词，或者在命令模式里直接 /搜索的词也可以，&lt;/p&gt;

&lt;p&gt;可以按 n 到搜索的下一个词的地方，按 N 就是往上找。搜索到的词就会以高亮显示，如下图：&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/ee64e511-351b-40db-8e16-e8a0ee0ee2eb.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;如果要忽略大小写，可以先在底线模式输入：set ic , 反之：set noic。&lt;/p&gt;

&lt;p&gt;这个高亮如果不取消显示会一直有，可以用这个命令取消，底线模式下输入：nohlsearch。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;【字符替换】&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;在底线模式下：输入 1,$s/string/replace/g 会将全文的 string 字符串替换为 replace 字符串。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;1,$ 表示从第一行到最后一行&lt;br&gt;
s 表示替换&lt;br&gt;
g 表示每行全部替换
&lt;img src="https://l.ruby-china.com/photo/upyun/dcdc7c62-c8a4-4096-8f4e-a5f34974cbb0.png!large" title="" alt=""&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;此时 /w 已经搜索不到了。(此处没有忽略大小写)&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/f4fc50a5-34ca-4768-a8a5-d9acdfbcec2d.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;替换某一行中的：5s/string/replace/g。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;5 表示行数&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;【操作其它文件】&lt;/p&gt;

&lt;p&gt;写入到其它文件：可以直接 w 文件名，这样就会直接创建一个新的文件，并把当前文件的内容拷贝一份到里面。&lt;/p&gt;

&lt;p&gt;直接打开另外一个文件：edit 文件名，如果这个时候想看有没有切换成功，可以输入 file 就可以查看当前打开的文件。&lt;/p&gt;
&lt;h3 id="五、命令模式下的常用快捷键"&gt;&lt;strong&gt;五、命令模式下的常用快捷键&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;【删除】&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;x：根据光标的位置删除，一次只能删除一个，想要删除多个，可以先按下 想删除的数量 然后再按 x。&lt;/p&gt;

&lt;p&gt;例子：先按 300 后按 x，就是删除 300 个字符:300x。&lt;/p&gt;

&lt;p&gt;注：这里可以直接在键盘上按对应的数字，是没有显示的，按完数字再按 x 即可删除。&lt;/p&gt;

&lt;p&gt;dw : 删除光标所在处到词尾的内容。&lt;/p&gt;

&lt;p&gt;dd : 删除光标所在行，3dd 代表的意思就是删除光标所在位置向下的三行，包括光标所在的行 (同 x 批量删除一样)。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;【复制】&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;yy : 复制光标所在的行。&lt;/p&gt;

&lt;p&gt;yw : 复制光标所在处到词尾的内容。&lt;/p&gt;

&lt;p&gt;p : 黏贴，此命令是在命令模式下，按照上面的命令复制后，然后光标移动到想要复制的位置，然后按 p 黏贴。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;【取代替换】&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;r : 取代光标所在字符，按一下 r 再按 想要取代的字符。&lt;/p&gt;

&lt;p&gt;R : 连续取代字符直到按 Esc 为止，按一下 R 然后依次按后面取代的字符，最后按 Esc 结束。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;【撤销】&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;撤销键按：u。&lt;/p&gt;

&lt;p&gt;ctrl+r : 重做被撤销的操作，这个是如果你改好后不小心按了下 u，再用这个命令就可以重新回到撤销前的界面。&lt;/p&gt;

&lt;p&gt;本文只是简单介绍了下 vim 的常用命令，除了这些还有很多其它的命令，感兴趣的朋友可以更深入地去了解下。&lt;/p&gt;</description>
      <author>upyun</author>
      <pubDate>Thu, 24 Aug 2023 15:36:58 +0800</pubDate>
      <link>https://ruby-china.org/topics/43289</link>
      <guid>https://ruby-china.org/topics/43289</guid>
    </item>
    <item>
      <title>聊聊大语言模型（LLM）的 10 个实际应用</title>
      <description>&lt;p&gt;近期，苹果公司正在悄悄研究可以挑战的 OpenAI、谷歌和其他公司的 AI 工具，建立了自己的框架来创建大语言模型，并创建了一个聊天机器人服务，一些工程师称之为“Apple GPT”。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/966f3b71-2fb5-47d3-b458-a0903757d3ab.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;其实，这些"GPT"背后的技术本质上是大型语言模型的应用。大语言模型（Large Language Model，简称 LLM）是一种利用深度学习技术，根据大量的文本数据，学习语言的规律和知识，从而能够生成自然和流畅的文本的模型。大语言模型具有强大的表达能力和泛化能力，可以应用于各种自然语言处理任务，如机器翻译、文本摘要、对话系统、问答系统等。&lt;/p&gt;

&lt;p&gt;大语言模型正迅速成为互联网时代最热门的技术创新之一，虽然现在该技术尚处于起步阶段，但已经开始在一些企业应用中广泛部署。接下来，我们来看看大语言模型的 10 大应用场景。&lt;/p&gt;
&lt;h2 id="一、文本翻译"&gt;&lt;strong&gt;一、文本翻译&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;大语言模型最简单的实际应用之一就是翻译书面文本。例如，用户可以向 AI 助手输入文本，并要求它翻译成另一种语言，然后应用就会自动开始翻译成自然流畅的文本。&lt;/p&gt;

&lt;p&gt;一些研究表明，与市面上的一些商业翻译产品相比，GPT-4 等 LLM 的表现具有更强的竞争力。大语言模型可以根据不同的语境和文本内容进行自适应，从而可以更好地处理复杂的语言表达。同时，大语言模型不仅可以应用于传统的文本翻译，还可以应用于语音翻译、实时翻译等更多的应用场景。不过，研究人员也指出，GPT-4 在翻译欧洲语言时最为有效，但在翻译一些 "使用率低 "或 "冷门 "语言时并不那么准确。这也跟大语言模型的技术特点有关，因为它需要大量的训练数据来进行模型训练，因此需要投入更多的资源和时间来构建和优化模型。&lt;/p&gt;
&lt;h2 id="二、恶意软件分析"&gt;&lt;strong&gt;二、恶意软件分析&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;大数据模型可以利用大量的数据来建立模型，通过机器学习算法和数据挖掘技术，从中发现恶意软件的特征和行为模式，从而可以更好地对恶意软件进行检测、分类和分析。&lt;/p&gt;

&lt;p&gt;2023 年 4 月，谷歌推出网络安全 LLM Sec PaLM 的大语言模型，展示了在恶意软件分析中的一些用途。例如，谷歌的人工智能恶意软件分析工具 VirusTotal Code Insight，就使用了 Sec PaLM LLM 扫描并解释脚本的执行逻辑，可使用户清楚了解到这些脚本是否具有恶意。 &lt;/p&gt;
&lt;h2 id="三、创造文本内容"&gt;&lt;strong&gt;三、创造文本内容&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;大语言模型的另一个越来越常见的用途是文本内容的创造。各种大语言模型都具备可以按照用户想法，生成博客、长篇文章、短篇故事、摘要、脚本、问卷、调查和社交媒体帖子等一系列书面内容的能力。用户提供的想法越详细，模型输出内容的质量就越高。  &lt;/p&gt;

&lt;p&gt;另外，如果不使用大语言模型生成内容，用户也可以借助它们用来帮助构思。根据研究显示，33% 的营销人员使用人工智能为营销内容生成创意或灵感，而其中的主要价值在于，人工智能可以加快内容生成过程。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/288be57f-feae-4852-8152-2fb07cfd76e6.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;此外，除了生成文本内容外，还有一些工具如 DALL-E、MidJourney 和 Stable Diffusion，可以让用户输入文本提示来生成图像。&lt;/p&gt;
&lt;h2 id="四、搜索"&gt;&lt;strong&gt;四、搜索&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;许多刚开始接触大语言模型的用户，会首先尝试将生成式 AI 作为一种替代搜索的工具。用户只需要使用自然语言向 AI 程序提问，程序会立即回复，并提供关于相关话题的见解和“事实”。现在市场面已经有非常多的搜索引擎，已经引入大语言模型，来带给用户更好的体验。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/30f665ae-6386-4535-b4b4-cbbe38547b54.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;虽然使用 Bard 或 ChatGPT 等大语言模型作为搜索工具可以快捷获取到大量信息，但必须注意，目前响应的所有内容并非一直都准确无误。在特定情况下，大语言模型可被恶意调教，引导捏造事实和数字。因此，用户使用的时候，最好仔细核对语言模型提供的任何事实信息，以免被错误信息误导。&lt;/p&gt;
&lt;h2 id="五、代码开发"&gt;&lt;strong&gt;五、代码开发&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;生成式 AI 工具不仅能生成自然语言，还能生成例如 JavaScript、Python、PHP、Java 和 C# 等编程语言的代码。大语言模型的代码生成能力可以使得非技术用户也能生成一些基本的代码。此外，它们还可用于帮助调试现有代码，甚至生成注释文档。&lt;/p&gt;

&lt;p&gt;不过，虽然目前编程人员可以让生成式 AI 工具为一些基本的、重复性逻辑编写代码，但在范围和规模更大的复杂任务中，还是有些力不从心。因此，编程人员在开发过程中如果运用到了生成式 AI 工具，则需要反复检查代码的功能和安全问题，以避免部署后出现问题。&lt;/p&gt;
&lt;h2 id="六、检测和预防网络攻击"&gt;&lt;strong&gt;六、检测和预防网络攻击&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;大语言模型在网络安全方面的另一个用途是检测网络攻击。这是因为大语言模型有能力处理在整个企业网络中收集的大量数据，并能深度分析，判断存在恶意网络攻击的模式，从而发出警报。&lt;/p&gt;

&lt;p&gt;到目前为止，一些网络安全厂商已经开始尝试使用该技术进行威胁检测。例如，今年年初，SentinelOne 公司发布了一个 LLM 驱动的解决方案，可以自动搜索威胁，并对恶意活动启动自动响应。微软的 Security Copilot 则演示了另一种允许用户扫描其环境中的已知漏洞和漏洞利用情况的解决方案，能在几分钟内生成潜在安全事件报告，以便用户做好提前预防手段。&lt;/p&gt;
&lt;h2 id="七、虚拟助理和客户支持"&gt;&lt;strong&gt;七、虚拟助理和客户支持&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;作为虚拟助理，生成式人工智能在客户支持领域也大有可为。&lt;/p&gt;

&lt;p&gt;麦肯锡的研究发现，在一家拥有 5000 名客服人员的公司，应用生成式 AI 后，问题解决率每小时提高了 14%，处理问题的时间减少了 9%。AI 虚拟助理允许客户即时询问有关服务和产品的问题、申请退款和报告投诉。对公司的用户来说，它缩小了获取人工支持以及问题解决的时间，对企业来说，它使重复性的支持变成了自动化任务，减小成本。&lt;/p&gt;
&lt;h2 id="八、转录"&gt;&lt;strong&gt;八、转录&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;大语言模型能够将音频或视频文件高精度地转录为书面文本，这一点也受到了业界的广泛关注。Sonix 等公司已经开始使用生成式人工智能从音频和视频文件中转录文本。与传统的转录软件相比，大语言模型的优势之一就是自然语言处理 (NLP)，从而能够精准推断出音视频中语句的上下文和及其隐藏含义。  &lt;/p&gt;
&lt;h2 id="九、市场调研"&gt;&lt;strong&gt;九、市场调研&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;生成式 AI 能够对大型数据进行总结和推理，因此也是企业进行市场调研分析，深入了解产品、服务、市场、竞争对手和客户的有用工具。语言模型通过处理用户的文本输入或数据集，对趋势进行书面总结，提供对买家角色、差异化竞争、市场差距的见解，以及其他可用于长期业务增长的信息。&lt;/p&gt;
&lt;h2 id="十、SEO关键词优化"&gt;&lt;strong&gt;十、SEO 关键词优化&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;人工智能助手在 SEO 关键词优化过程方面也能发挥重要作用。通过工具分析，充分满足用户的需求特征、清晰的网站导航、完善的在线帮助等，在此基础上使得网站功能和信息发挥最好的效果。  &lt;/p&gt;

&lt;p&gt;例如，用户可以让生成式 AI 分析自己的网站博客，然后提供一些有利于搜索引擎优化的标题列表。为了获得最佳效果，使用 ChatGPT 等 LLM 来确定潜在关键词，然后使用一些第三方 SEO 提供商的工具进行交叉检查，以确保流量最大化。&lt;/p&gt;

&lt;p&gt;虽然现在生成式 AI 的发展仍在早期，各类生成式 AI 工具也让我们看到了未来的无限可能，相信用不了多久，依托于各类大语言模型的生成式 AI 将深深融入我们的工作、创作和娱乐方式。这些工具不仅可以帮助我们提高创造力和效率，也可以给我们带来乐趣和惊喜。未来究竟会发展成什么样子呢？AI 的能力到底有多么强大？就让我们拭目以待吧。&lt;/p&gt;</description>
      <author>upyun</author>
      <pubDate>Thu, 10 Aug 2023 09:56:49 +0800</pubDate>
      <link>https://ruby-china.org/topics/43266</link>
      <guid>https://ruby-china.org/topics/43266</guid>
    </item>
    <item>
      <title>用 ChatGPT 写一篇《ChatGPT 会取代我们的工作吗》</title>
      <description>&lt;p&gt;自从 ChatGPT 火爆以后，最常谈到的话题就是 ChatGPT 会取代我们的工作吗？在写这篇内容时我有个大胆的想法，那就是让 ChatGPT 来取代我的工作。&lt;/p&gt;

&lt;p&gt;首先，我决定直接让 ChatGPT 就这个问题写一篇 800 字的文章，得到了如下的结果：&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/efb1924b-4340-45b2-9049-d6d3e82ea950.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;我发现 ChatGPT 的回答思路清晰、观点明确、表达有逻辑，这篇内容就这么完成了~哈哈，开个玩笑。虽然回答没什么问题，但我感觉可读性还是稍差了点，毕竟不是写论文。&lt;/p&gt;

&lt;p&gt;所以，我决定先简单整理下整篇内容的框架：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; 用《摩登时代》的电影，做一个人工智能的引入&lt;/li&gt;
&lt;li&gt; 介绍 ChatGPT 及生成式 AI，以及与普通人工智能的对比&lt;/li&gt;
&lt;li&gt; ChatGPT 如何取代我们的工作，以及哪些行业（岗位）容易被取代&lt;/li&gt;
&lt;li&gt; ChatGPT 的未来。&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;看《摩登时代》已经是很早之前的事情了，我只是模糊地记得是讲流水线相关的，所以让 ChatGPT 来给我一段相关介绍。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/47c0d17d-d779-4f52-84bf-183655828a95.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;有了这段话，这篇内容的引入部分基本可以完成了。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;大家有看过卓别林执导的电影《摩登时代》吗？&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/e1fb0ead-5b75-4837-9a03-23738d39f297.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;《摩登时代》主要讲述了一个工人（查理·卓别林饰）在现代化工业化社会中的生活遭遇。他被机器和工作的节奏所支配，身心俱疲，遭遇了一系列的困难和不幸，最终在经历了一系列的挫折和困难后找到了新的生活和希望的故事。&lt;/p&gt;

&lt;p&gt;从画面中，我们可以看到一个个工人在机械地完成一些重复工作，想简单休息下都做不到。而现如今智能制造已经基本上可以完成流水线的工作。人工智能这个概念最早出现在 1956 年，而近期刚火爆起来的 ChatGPT 与人工智能有什么区别呢？&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;引入写完了，那我们就开始写 ChatGPT 的介绍以及和普通人工智能的对比，这就更简单了。我问了 ChatGPT“什么是 ChatGPT？”、“ChatGPT 与普通人工智能有什么区别”、“ChatGPT 属于生成式 AI 吗？”、“什么是生成式 AI？”、“ChatGPT 相较于普通人工智能有什么优势”几个问题，就基本完成了这一段。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/7975be7e-2220-4287-8e17-8769cc691d4b.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/31f66657-fe85-417e-8e02-65d316fd1826.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;h2 id="什么是 ChatGPT？"&gt;&lt;strong&gt;什么是 ChatGPT？&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;ChatGPT 是由 OpenAI 公司开发的，一种基于自然语言处理（Natural Language Processing，NLP）技术的语言生成模型，它基于深度学习模型和大规模语料库训练，可以模拟人类的语言表达和理解能力。ChatGPT 可以应用于多种自然语言处理任务，如智能客服、问答系统、智能翻译、文本生成等。它可以根据输入的文本内容和上下文信息，生成符合语法和语义规则的自然语言响应，从而实现与人类进行自然的语言交互。&lt;/p&gt;

&lt;p&gt;ChatGPT 属于生成式 AI 的范畴。生成式 AI 是指能够基于输入数据生成新的数据的人工智能系统。生成式 AI 主要采用的是深度学习技术，如深度生成模型（Deep Generative Models）和自回归模型（Autoregressive Models）等。&lt;/p&gt;

&lt;p&gt;在实际应用中，生成式 AI 已经被广泛应用于多个领域，如自然语言处理、图像处理、音乐创作等。例如，在自然语言处理领域，生成式 AI 可以用于文本生成、对话系统、机器翻译等任务；在图像处理领域，生成式 AI 可以用于图像生成、图像修复、图像风格转换等任务；在音乐创作领域，生成式 AI 可以用于音乐生成和创作。&lt;/p&gt;
&lt;h3 id="ChatGPT VS 普通人工智能"&gt;&lt;strong&gt;ChatGPT VS 普通人工智能&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;在了解了 ChatGPT 后，我们来看下它与普通人工智能有什么区别：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;任务范围不同：普通人工智能可以处理多种不同类型的任务，如图像识别、语音识别、机器翻译等。而 ChatGPT 主要是针对自然语言处理任务，如聊天机器人、问答系统、文本生成等。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;语言交互能力不同：普通人工智能可以通过多种方式与用户进行交互，如图像、声音等，而 ChatGPT 主要是通过自然语言与用户进行交互，实现语言的生成和理解。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;训练方式不同：普通人工智能的训练方式多样，可以通过监督学习、强化学习等方式进行训练，而 ChatGPT 主要是通过无监督学习方式，利用大规模语料库进行预训练，从而提高模型的语言表达和理解能力。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;模型结构不同：普通人工智能的模型结构和算法多种多样，如卷积神经网络、循环神经网络、深度强化学习等。而 ChatGPT 主要是基于 Transformer 模型的语言生成模型，采用编码器 - 解码器结构实现自然语言的生成和理解。&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;那么，ChatGPT 有哪些优势呢？&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;自然度高：ChatGPT 可以模拟人类的语言表达和理解能力，生成的文本自然度高，可以实现近乎人类的自然语言交互。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;学习能力强：ChatGPT 采用了深度学习技术，可以通过大规模的语料库训练来不断优化模型，提高模型的语言表达和理解能力。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;适应性强：ChatGPT 可以根据输入的文本内容和上下文信息，自动调整生成的响应内容，具有一定的适应性和灵活性。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;可定制性强：ChatGPT 可以通过调整模型的参数和训练数据，来实现特定任务的优化和定制，如聊天机器人、问答系统等。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;可扩展性强：ChatGPT 可以通过增加训练数据和模型层数等手段，来提高模型的性能和扩展性，可以适应不同规模和复杂度的任务需求。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;可部署性强：ChatGPT 的模型可以部署在云端或本地服务器上，支持实时的自然语言交互，可以为用户提供高效、便捷的语言服务。&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;写到这里，内容基本上已经完成了一半，接下来我们来问问 ChatGPT 会取代我们的工作吗以及会取代哪些岗位的工作。&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/upyun/d0330f61-8249-4c5a-a4b8-d4cd2e1919c9.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;结合开头的内容，这一段基本也可以完成了。&lt;/p&gt;

&lt;blockquote&gt;
&lt;h2 id="ChatGPT 会取代我们的工作吗？"&gt;&lt;strong&gt;ChatGPT 会取代我们的工作吗？&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;在简单了解了 ChatGPT 和生成式 AI 之后，那么最主要的问题来了，它们会取代我们的工作吗？&lt;/p&gt;

&lt;p&gt;ChatGPT 是一种自然语言处理技术，它可以模拟人类的思维和语言表达能力。但是，ChatGPT 并不能完全替代人类的工作，因为它还存在一些局限性和不足。&lt;/p&gt;

&lt;p&gt;首先，ChatGPT 缺乏人类的情感、判断和创造力等能力。在某些领域和任务中，如复杂的决策、创意和创新等方面，人类的智能仍然是无法替代的。其次，ChatGPT 的应用场景和领域也存在一定的局限性。在某些需要人类实际操作的领域，如医疗、教育、建筑等，ChatGPT 并不能完全替代人类的工作。&lt;/p&gt;

&lt;p&gt;然而，虽然 ChatGPT 不能完全替代人类的工作，但是它在一些领域和任务中已经发挥了很大的作用。例如：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;客服代表：ChatGPT 可以处理常见问题和回答用户的咨询，因此可以在一定程度上替代客服代表的工作。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;数据录入员：ChatGPT 可以识别和处理大量的文本数据，因此可以在一定程度上替代数据录入员的工作，提高数据处理的效率和精度。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;文案编辑：ChatGPT 可以自动生成文案、广告语、商业邮件等内容，因此在某些领域可以替代文案编辑的部分工作。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;翻译：ChatGPT 可以进行文本翻译和语音翻译，因此可以在一定程度上替代翻译的工作。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;智能助手：ChatGPT 可以作为一种智能助手，帮助用户处理日常的事务和任务，例如提醒日程、安排会议、订机票等。&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;p&gt;到了文章最后的结尾了，我也不想再麻烦 ChatGPT 了，就简单说下自己的观点。&lt;/p&gt;

&lt;p&gt;当下，ChatGPT 并不能完全替代人类的工作，甚至说它还有点“弱”，但它在一些领域和任务中已经展现了很大的潜力。在未来，ChatGPT 和人类可以更好地协同工作，发挥各自的优势，共同推动人工智能技术的发展。在更远的未来，我相信随着技术的发展，无论是 ChatGPT 还是生成式 AI，将会在人类协同工作中占据更大的比例，甚至可能会颠覆现有的部分生产模式，能够自主独立“胜任”一些岗位。当然我们也不需要过多担心，我们只要不断学习，不断提高自己的专业技能和知识水平，以适应未来工作的变化和需求。AI 可以取代部分我们的工作，但也给了我们更多发挥想象和创作的空间，我相信在这一方面，AI 是永远无法取代我们的。&lt;/p&gt;</description>
      <author>upyun</author>
      <pubDate>Tue, 08 Aug 2023 16:03:05 +0800</pubDate>
      <link>https://ruby-china.org/topics/43261</link>
      <guid>https://ruby-china.org/topics/43261</guid>
    </item>
  </channel>
</rss>
