Codebase for "SLIDE : In Defense of Smart Algorithms over Hardware Acceleration for Large-Scale Deep Learning Systems"
滑块模型(SLIDE)源代码
SLIDE 包含了本文主要实验的源代码,您可以通过以下论文进行查阅。
若需获取针对 CPU 优化的代码(包含 AVX、BFloat 以及其他内存优化技术),请参考较新论文的此链接。
数据集
数据集可以从Amazon-670K下载。请注意数据集是按标签排序的,因此在使用前请至少将验证/测试数据打乱。
TensorFlow 基线模型
我们建议直接获取 TensorFlow 的 docker 镜像来安装 TensorFlow-GPU。 对于使用了 AVX2 编译的 TensorFlow-CPU,我们推荐使用这个预编译的版本。
此外,还有一个专门为 CPU 构建的 TensorFlow docker 镜像,该镜像支持 AVX-512 指令集,要获取它,请使用以下命令:
docker pull clearlinux/stacks-dlrs_2-mkl
config.py 负责管理 TensorFlow 训练的参数,例如“学习率”。example_full_softmax.py 与 example_sampled_softmax.py 是针对“Amazon-670K”数据集的示例文件,分别使用完整 softmax 和采样 softmax 方法。
执行
python python_examples/example_full_softmax.py
python python_examples/example_sampled_softmax.py
运行 SLIDE
依赖
- CMake 版本 v3.0 或以上
- 符合 C++11 标准的编译器
- Linux 系统:Ubuntu 16.04 及更高版本
- 必须启用透明大页(Transparent Huge Pages)。
- SLIDE 需要大约 900 个 2MB 页面,以及 10 个 1GB 页面:(操作指南)
注意事项:
-
为了简化操作,请使用我们的 Docker 镜像,其中已安装所有环境。如需在不设置大页的情况下复现实验,请下载 Amazon-670K,并将其放置在路径
/home/code/HashingDeepLearning/dataset/Amazon下。 -
请注意,仅 Skylake 或更新架构的处理器支持大页。对于较老的 Haswell 处理器,我们需要从 Makefile 文件的
OPT_FLAGS行中移除-mavx512f标志。您还可以回退到提交2d10d46b5f6f1eda5d19f27038a596446fc17cee,以忽略大页优化并继续使用 SLIDE(这可能会导致性能降低 30%)。
命令
适当更改 ./SLIDE/Config_amz.csv 中的路径。
git clone https://github.com/sarthakpati/HashingDeepLearning.git
cd HashingDeepLearning
mkdir bin
cd bin
cmake ..
make
./runme ../SLIDE/Config_amz.csv
当然,我将按照您的要求提供翻译。不过,您似乎忘记提供需要翻译的文本。请提供原文,我将会把它翻译成中文,保持 Markdown 格式,并确保翻译的通俗性、专业性、优雅性和流畅性。