刚刚说了在 Oracle Cloud 圣何塞的 ARM 服务器上折腾 Python,已经把 uv、ISLP 官方实验环境和 PyTorch 配好了

本来只是想给这台机器找点事情做,结果顺手和 Kaggle Notebook 跑了几组机器学习基准测试,记录一下实际表现

我的甲骨文实例:

  • 4 核 ARM64
  • 约 24 GB 内存
  • Ubuntu + Python 3.12
  • PyTorch 2.10.0 CPU 环境用于最初的测试

Kaggle 测试环境报告了 4 个逻辑 CPU,另外还启用了 NVIDIA Tesla T4 GPU

一、随机森林:甲骨文 ARM 反而快不少

使用 scikit-learn 生成 40,000 个模拟分类样本,40 个特征,训练 200 棵树的随机森林。训练集 32,000 个样本,测试集 8,000 个样本

并行线程数 甲骨文 ARM Kaggle CPU
1 34.12 秒 80.11 秒
2 17.74 秒 43.71 秒
4 9.50 秒 29.29 秒

这次任务中,甲骨文 4 线程训练约 9.5 秒,Kaggle CPU 约 29.3 秒,前者快约 3.1 倍

两边测试集准确率都是 95.5875%

二、PyTorch 矩阵乘法:Kaggle CPU 反而占优

然后又测了 float32 矩阵乘法,使用 4096 × 4096 的矩阵

线程数 甲骨文 ARM Kaggle CPU
1 3.656 秒 1.068 秒
2 1.850 秒 0.563 秒
4 1.057 秒 0.608 秒

同样的矩阵乘法,Kaggle CPU 的 4 线程耗时约 0.61 秒,比甲骨文的约 1.06 秒快约 1.7 倍

而且挺有意思:Kaggle 这边 4 线程并没有比 2 线程更快,说明线程数不是越多越好,具体还得看任务和底层计算库

三、再试 Kaggle Tesla T4 GPU

最后给 Kaggle Notebook 启用了 GPU,调用第一张 Tesla T4,运行同样的 4096 × 4096 float32 矩阵乘法

计算设备 耗时
甲骨文 ARM,4 线程 CPU 约 1057 毫秒
Kaggle CPU,4 线程 约 608 毫秒
Kaggle Tesla T4 GPU 约 40.86 毫秒

在这项特定矩阵乘法任务里,T4 的耗时约为甲骨文 CPU 的 1/26。GPU 的优势还是很明显的。

注意我只调用了 cuda:0,所以这次测的是单张 T4,不是两张卡一起跑

四、我的感受

原本以为免费 ARM VPS 主要用来跑服务、Docker 和网络工具,没想到拿来做 Python 科学计算和传统机器学习也挺实用

最让我意外的不是谁全面碾压谁,而是同一台机器在不同任务中表现差异很大:

  • 随机森林:甲骨文 ARM 明显领先。
  • PyTorch CPU 矩阵乘法:Kaggle CPU 更快。
  • 密集矩阵乘法:T4 GPU 有明显优势

这些还不是严格的硬件评测。两边的 scikit-learn 和 PyTorch 版本、编译后端都不完全一致,云平台实际分配的 CPU 资源也可能影响结果,所以不能单凭这几组数据断定哪种架构全面更强。

不过,对我这种平时需要阅读 ISLP 教材、运行 Notebook、做统计学习实验的人来说,甲骨文这台机器已经很够折腾了。Windows 本地写代码和阅读 Notebook,服务器负责计算,环境也能长期保存,不必每次打开 Kaggle 都重新准备环境

本来只是想给服务器找点事情做,结果发现免费云资源还能玩出不少东西

不知道大家有没有在 Oracle ARM VPS 上跑过 NumPy、PyTorch 或 scikit-learn?实际表现怎么样?