找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1595

积分

0

好友

202

主题
发表于 昨天 07:00 | 查看: 5| 回复: 0

在只有 Intel 和 AMD 的年代,CPU 市场显得波澜不惊。直到一款带着“技术自主”光环的龙芯(LoongArch)处理器,出现在了 DuckDB 联合创始人的办公桌上。

为了满足好奇心,同时也为了给 DuckDB 安排一场在全新架构下的“极限测试”,DuckDB联合创始人便自掏腰包,花费约 500 欧元从速卖通(AliExpress)上购入了一台 MOREFINE M700S 迷你主机。

这台主机的核心,便是国产自研的龙芯处理器。面对价格数倍于它的苹果 M3 Max MacBook,这颗新星在数据库负载下的表现究竟如何?是能出奇制胜,还是会被无情“打脸”?本文将带你一探究竟,不仅有略显“复古”的系统体验,更有真实的 TPC-H 性能对决数据。测试数据本身颇具看点,而创始人最想吐槽的,或许并非性能本身。

下面的内容编译自 DuckDB 官方博客:https://duckdb.org/2026/01/06/duckdb-on-loongarch-morefine

DuckDB on 龙芯 来了

TL;DR:我们最近测试了一台采用 LoongArch 架构的龙芯 CPU 设备。

并非每天都有新的 CPU 架构出现在办公桌上。我成长于 Intel 486 时代,经历了 AMD 在 2000 年发布 64 位 x86 扩展,之后直到 2020 年苹果发布基于 ARM 的 M1 芯片前,CPU 领域都鲜有重大变革。今天,我们终于迎来了期待已久的测试设备——MOREFINE M700S。

MOREFINE M700S迷你主机外观
MOREFINE M700S产品页面截图,显示Loongson LS3A6000 CPU规格

M700S 搭载了龙芯处理器。这款处理器也被称为“龙芯架构”或“神芯处理器”,是中国自主研发的 CPU,其指令集基于 MIPS 架构。这是中国“中国制造2025”计划中实现技术自主的一环。鉴于当前的全球贸易形势,可以预见龙芯处理器在中国市场的渗透率可能会逐步提升。DuckDB 在中国已有相当多的用户,因此我们自然希望确保 DuckDB 能在龙芯平台上良好运行。

幸运的是,社区成员仅用两个极小的补丁就成功让 DuckDB 完成了编译。这激发了我们的兴趣。于是我们从速卖通购入了这台 M700S,它配备了龙芯 8 核 3A6000 CPU、16 GB 内存和 256 GB 固态硬盘。

设备启动后,除了风扇持续运转且噪音较大外,一切正常。系统是名为 Loongnix 的 Debian 变体,图形界面基于 KDE,并自带一个名为 “LBrowser” 的 Chromium 分支浏览器。默认 root 密码和用户 m700s 的密码均为 M700S

总体而言,即便运行 apt upgrade 后,系统软件版本也显得有些陈旧:Linux 内核版本为 4.19(发布于 2018 年),GCC 版本为 8.3(发布于 2019 年)。这或许是企业级系统追求稳定性的体现,但确实与最新的开发环境存在差距。

借助社区提供的补丁,我们成功在 Loongnix 上编译了 DuckDB 1.4.3。过程中遇到一个小问题:CMake 文件 append_metadata.cmake 与系统自带的旧版本 CMake(3.13.4)不兼容。通过将该文件替换为空文件,我们绕过了此问题,最终完成了编译。编译 DuckDB 这类复杂的 C/C++ 项目,对工具链的完善度有一定要求。

编译完成后,我们运行了 DuckDB 的大型单元测试套件 make allunit,以验证其在龙芯 CPU 上的功能完整性,结果一切正常。

性能对比测试:TPC-H 基准

为了进行性能评估,我们沿用之前在树莓派上测试 DuckDB 的方法。我们在“缩放因子”(SF)为 100 和 300 的情况下,运行了完整的 22 个 TPC-H 查询,这分别对应约 25 GB 和 78 GB 的 DuckDB 数据库文件。

我们将测试结果与一台配备 M3 Max CPU 的 MacBook Pro 进行对比。为确保公平,两个平台上的 DuckDB 内存限制均设置为 14 GB。报告中的运行时间为“热运行”时间,即重新运行查询集并取第二次运行的结果。

以下是汇总结果。我们先来看总时间对比:

SF System Geometric mean Sum
SF100 MacBook 0.6 16.9
SF100 MOREFINE 6.1 192.8
SF300 MacBook 2.8 78.8
SF300 MOREFINE 27.3 791.6

数据显示,在这项 TPC-H 基准测试中,无论是运行时间的几何平均值还是总和,MacBook 的速度都大约是 MOREFINE 的 10 倍。

下面是各个查询的详细运行时间(单位:秒):

Q SF100/MacBook SF100/MOREFINE SF300/MacBook SF300/MOREFINE
1 1.247 7.363 4.528 26.475
2 0.117 1.058 0.474 4.101
3 0.697 8.563 2.759 32.432
4 0.570 7.348 2.331 27.185
5 0.631 8.498 3.217 34.462
6 0.180 1.236 1.395 13.225
7 0.620 7.702 3.119 37.411
8 0.640 5.593 3.611 29.914
9 1.906 30.560 6.670 99.884
10 0.923 11.755 4.036 40.412
11 0.102 1.037 0.709 4.444
12 0.535 6.422 2.918 31.501
13 1.847 21.185 6.394 74.081
14 0.408 5.616 3.240 26.613
15 0.252 2.652 1.906 17.454
16 0.273 3.108 0.879 11.480
17 0.805 5.184 4.655 28.469
18 1.538 15.492 7.619 71.845
19 0.779 9.143 4.379 39.111
20 0.441 4.993 3.234 25.967
21 1.996 23.231 9.503 96.452
22 0.441 5.036 1.237 18.709

测试总结与思考

在新硬件平台上运行 DuckDB 总是令人兴奋。DuckDB 的设计目标之一就是极高的可移植性,能够在各种硬件环境下提供卓越性能。因此,它在搭载新 CPU 的 MOREFINE 上顺利运行并不出奇。然而,在标准的 TPC-H 基准测试中,其性能与高端苹果芯片存在显著差距,后者速度领先约 10 倍。

当然,这背后存在巨大的优化空间。首先,龙芯平台上的 gcc 工具链可能远不如 x86/ARM 版本成熟,这方面的改进有望带来显著的性能提升。I/O 性能也未在本次测试中单独评估。但积极的一面是,龙芯 CPU 确实能够成功完成 TPC-H SF300 这样大规模的数据处理测试!

有人会说,MacBook Pro 比 500 欧元的 MOREFINE 贵得多。然而,配置相近(16GB+256GB)的 M4 Mac Mini 售价约为 700 欧元,价差并非天壤之别。它在性能上远超 MOREFINE,且运行安静。

从芯片、编译器到操作系统,构建一个成熟的高性能 计算生态 是一项庞大工程。让复杂软件(如数据库)在新架构上“跑得欢快”,确实还有很长的路要走。但方向正确就不怕路远,这更多是时间问题。本次测试也引发了技术社区对 不同架构下系统设计 与性能调优的思考,欢迎在 云栈社区 继续深入探讨国产全生态的崛起之路。




上一篇:USB接口颜色含义解析:从Type-A到Type-C的速率与充电标识指南
下一篇:Source Insight成功逆袭:从本地符号数据库到嵌入式C/C++开发首选
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-11 18:12 , Processed in 0.245082 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表