Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
Menu

使用 AVX-512 转码 Unicode:AMD Zen 4 与 Intel Ice Lake

Posted on 2023-01-06

肖像2018facebook.jpg

今天的大多数系统都依赖 Unicode 字符串。但是,我们有两种流行的 Unicode 格式:UTF-8 和 UTF-16。我们经常需要从一种格式转换为另一种格式。例如,您可能有一个使用 UTF-16 格式化的数据库,但您需要使用 UTF-8 生成 JSON 文档。这种转换通常称为“转码”。

在过去的几年里,我们编写了一个专门处理 Unicode 字符串的库,重点是性能: simdutf 库。该库用于 JavaScript 运行时( Node JS和bun )。

simdutf 库能够受益于处理器上最新和最强大的指令。特别是,它与最新的带有 AVX-512 指令的处理器(Intel Ice Lake、Rocket Lake 以及 AMD Zen 4)配合得很好。

我还没有 Zen 4 处理器,但 Velu Erwan 足以为我进行基准测试。一个合理的任务是将阿拉伯语文件从 UTF-8 转码为 UTF-16:这通常是一项非常重要的任务,因为阿拉伯语 UTF-8 是一个字节和两个字节字符的混合,我们必须将它们转换为两个-字节 UTF-16 字符(带验证)。所需步骤(Linux下)如下:

 git clone https://github.com/simdutf/simdutf &&   
   
CD simdutf &&   
   
cmake -B 构建 && cmake --build 构建 &&   
   
wget https://cutt.ly/d2cIxRx &&   
   
./build/benchmarks/benchmark -F Arabic-Lipsum.utf8.txt -P convert_utf8   
   

(理想情况下,以对性能计数器的特权访问权限运行最后一个命令。)

与 Intel 一样, AMD 也有自己的编译器。我无法访问 Intel 编译器进行测试,但 Velu 有 AMD 编译器。

一个明智的参考点是 iconv,因为它由运行时库提供。 AMD 处理器的运行速度比英特尔内核快得多(5.4 GHz 与 3.4 GHz)。我们使用 GCC 12。

转码器 英特尔冰湖 (GCC) AMD 禅 4 (海湾合作委员会) AMD Zen 4(AMD 编译器)
图标 0.70 GB/秒 0.97GB/秒 0.98 GB/秒
模拟器 7.8 GB/秒 11GB/秒 12GB/秒

乍一看,Zen 4 处理器在运行 simdutf AVX-512 代码时的每个周期效率略低(AMD 为 2.8 条指令/周期,而 Intel 为 3.1 条指令/周期)但请记住,我们没有在调整我们的代码时访问 Zen 4 处理器。效率差异足够小,我们可以大致认为处理器处于同等水平,等待进一步调查。

AMD Zen 4 以更高的频率运行的最大区别。如果我依靠维基百科,我认为没有可以匹配 5.4 GHz 的 Ice Lake 处理器。然而,一些 Rocket Lake 处理器接近。

在我们的基准测试中,我们跟踪 CPU 频率,并且在运行 AVX-512 时获得与运行常规代码 (iconv) 时相同的测量频率。因此 AVX-512 确实很有优势。

这些结果表明 AMD Zen 4 在 AVX-512 性能方面与 Intel Ice Lake 相当。鉴于 Zen 4 微架构是 AMD 首次尝试在商业上支持 AVX-512,这是一项了不起的壮举。

进一步阅读:解析 JSON 时的 AMD Zen 4 性能(phoronix.com)。

注意:原始 AMD 结果可用: GCC 12和AOCC 。

图片来源:Velu Erwan从 AMD France 获得了处理器。确切的规格是 AMD 7950X,2x16GB DDR5 4800MT 重新配置为 5600MT。

原文: https://lemire.me/blog/2023/01/05/transcoding-unicode-with-avx-512-amd-zen-4-vs-intel-ice-lake/

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Bits about Money
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Christopher Butler
  • Colin Percival
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Dustin Curtis
  • eighty twenty
  • Elad Gil
  • Ellie Huxtable
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • Henrique Dias
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Liz Danzico
  • Lou Plummer
  • Luke Wroblewski
  • Matt Baer
  • Matt Stoller
  • Matthias Endler
  • Mert Bulan
  • Mostly metrics
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Rohit Patel
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Steve Blank
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • Understanding AI
  • Wes Kao
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme