本文主要记录在实验室的 Manjaro 主机上的 i3wm 配置,以及双显示器的完整工作流内容.
主要内容涵盖:
- 显卡支持
- 显示器布局
本论文是Anjo Vahldiek-Oberwagner, Eslam Elnikety, Nuno O. Duarte, Michael Sammler, Peter Druschel, Deepak Garg发表在28th USENIX Security Symposium (USENIX Security 19) 2019上的工作。
对于这篇论文,我们主要关注其如何防止不可信组件使用 WRPKRU 指令进行提权,进而危害可信组件或者敏感数据。
Entry:Zotero link URL link
本论文是 Zixuan Chen, Xuandong Liu, Minglin Li, Yinfan Hu, Hao Mei, Huifeng Xing, Hao Wang, Wanxin Shi, Sen Liu, Yang Xu 发表在 ICNL’ 2024上的工作。
本文发现基于参数服务器的 INA 方法在数学建模中缺乏增量部署能力,影响了数据中心的设计和升级。为此,提出了 Rina,首次在 Ring-Allreduce 架构中引入 INA 能力(每个 INA Switch 可以代替其 rack 下的所有 worker 加入环中,做到每加入一个 INA Switch 都能减少环长度),具备出色的增量部署能力,缓解了长依赖链问题。
Entry:Zotero link URL link
本论文是 Google 发表在Proceedings of the 50th Annual International Symposium on Computer Architecture ISCA ‘23 2023上的Industry Section工作。
Google 在 ASIC (Application Specific Integrated Circuit, 专用集成芯片) 上的工作始于 2015 年第一代 TPU (Tensor Processing Unit), 在2017、2018、2021年分别推出了 v2, v3, v4 版本,核心数量从 64 个以 4 倍增长的速度达到 4096 个,此后在 2023 年推出 TPU v5e/v5p,2024年推出 TPU v6,具备 1836 TOPS1,但是还是低于英伟达 H100 的 3026 TOPS (高于 A100 的 624 TOPS2),尽管算力具备差距,其基于 Palomar OCS (Optical Communcation Switch, 光交换机) 的网络提高了计算集群的性能。
TPU v4 是谷歌首次引入 OCS 优化通信,并提出 Sparse Core 优化稀疏计算的版本,下面将重点介绍这两方面。
Entry:Zotero link URL link
NCCL (音 “Nickel”) 是一个独立的库,包含用于 GPU 的标准通信例程。它已针对使用 PCIe、NVLink、NVswitch 以及使用 InfiniBand Verbs 或 TCP/IP 套接字的平台进行了优化,以实现高带宽。NCCL 支持单个节点或跨多个节点安装的任意数量的 GPU,并且可以在单进程或多进程(例如 MPI)应用程序中使用。
2017 年百度将 HPC 领域的 Ring AllReduce 算法引入机器学习领域,支持 GPU 的告诉通信。本文主要分析 NCCL 的 Reduce-Scatter/All-Gather 的算法逻辑。
安装
环境要求
根据仓库 README.md 要求:
- 安装 Pytorch >= 1.9
- 根据 Network Repo Installation for Ubuntu安装 CUDA Toolkit,其中包含了 NVCC(NVIDIA CUDA Compiler)
安装依赖包
$ git clone https://github.com/NVIDIA/apex
$ cd apex
$ python setup.py install
安装 Deepspeed 与 Magatron-Deepspeed 环境
$ pip install deepspeed transformers pybind11 nltk ipython matplotlib
$ export home_dir=$HOME/cyc_train
$ cd $home_dir
$ git clone https://github.com/microsoft/Megatron-DeepSpeed.git
Openwebtext 数据集准备
使用 openwebtext 数据集的一个子集,为了不污染环境,使用虚拟环境并安装生成数据集的环境:
$ git clone https://github.com/yet-another-account/openwebtext.git
$ cd openwebtext
$ python -m venv menv
$ activate menv
$ pip install ftfy langdetect numpy torch pandas nltk sentencepiece boto3 tqdm regex bs4 newspaper3k htmlmin tldextract lxml_html_clean
$ git clone https://github.com/mattilyra/LSH && cd LSH && python setup.py install
在 OpenWebText MEGA 上下载一个文件作为要爬取的目录,例如 RS_2018-10.xz.deduped.txt,将其放置在 $home_dir/openwebtext/urls/
下
本论文是Guanhua Wang, Heyang Qin, Sam Ade Jacobs, Connor Holmes, Samyam Rajbhandari, Olatunji Ruwase, Feng Yan, Lei Yang, Yuxiong He发表在 ICML'24上的工作。
本工作主要通过量化和分级通信,分别优化了训练中 ZeRO3 中的三种不同集合通信过程,使跨节点通信的总量从 3M 降低到 0.75M.
Entry:Zotero link URL link
Faasm 是来自 Imperial College London 的 Simon Shillaker 和 Peter Pietzuch 与 ATC'20上提出的工作。
Faasm 通过 WebAssembly 提供的软件故障隔离来隔离执行函数的内存,同时允许在同一地址空间内的函数之间共享内存区域以避免高昂的数据移动成本。其提供了 Faaslets 运行时,使用标准 Linux cgroups 来隔离 CPU 和网络等资源,并提供低级 POSIX 主机接口以便进行网络、文件系统访问和动态加载,并通过快照技术减少恢复 Faaslets 初始化时间。
本文主要介绍如何部署 Faasm 并在上面开发 Benchmark 应用。
在 v21.0.0 的 Release 版本中,wasmtime
包允许在 #![no_std]
的平台构建,但是只支持编译过程中的 Cargo 特性,目前支持的 Cargo 特性有:runtime
, gc
, component-model
官方提供了 Example 来表明如何构建这样的 wasmtime
利用 GDB 可以做四种主要的事情来帮助调试:
- 启动程序,指定参数
- 使程序在指定条件下停止
- 检查程序停止时发生了什么
- 更改程序中的内容
截至目前,GDB 15.1 支持的语言包括 Ada, Assembly, C, C++, D, Fortran, Go, Objective-C, OpenCL, Modula-2, Pascal ,Rust.
下面将介绍 GDB 调试的主要用法。