刚刚说了在 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?实际表现怎么样?