抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

理一理以前看过的论文,放在 zotero 上太乱了,就不那么想看。

而且 zotero 同步盘的额度好少(

Networking

MasQ: RDMA for Virtual Private Cloud

https://dl.acm.org/doi/10.1145/3387514.3405849, SIGCOMM

Po-Fi: Facilitating innovations on WiFi networks with an SDN approach

https://doi.org/10.1016/j.comnet.2020.107781

之前想看看网络方面的论文,看了看 USTC 网络方向的大概就 Bei Hua、Ye Tian 了(还有闻名的 Xinming Zhang)。

Achieving Fine-Grained Flow Management Through Hybrid Rule Placement in SDNs

https://doi.org/10.1109/TPDS.2020.3030630, TPDS

之前想看看网络方面的论文,就看了下科大苏州那边的 INT (Intelligent Network and System Group) 组,感觉 SDN 的想法还挺好玩的。

DHash: A Cache-Friendly TCP Lookup Algorithm for Fast Network Processing

网络算法学的作业(_是 Bei Hua 写的_),看了提升 Cache 使用效率的部分。

PacketShader: a GPU-Accelerated Software Router

网络算法学的作业,看了 Linux 网络栈下 socket buffer 频繁创建销毁对内存子系统产生巨大压力的部分。

ATP: In-network Aggregation for Multi-tenant Learning

网内聚合,在有可编程性的 SDN 交换机上聚合训练的参数结果、减少包的数量和网络压力。

System

Ansor: Generating High-Performance Tensor Programs for Deep Learning

cs.LG, Machine Learning, 2006.06762, OSDI 2020

在 2021 HKU 暑研时看的

2020 年在 AutoTVM 框架上的功能补充,主要看了用来代替 cuDNN 的自动编译优化规划器 AutoScheduler(AutoTVM 2.0)。

一些介绍 and 一些想法

Learning to Optimize Tensor Programs

cs.LG, Machine Learning, 1805.08166

在 2021 HKU 暑研时看的

文章讲了一些对 Tensor 程序的评估与优化手段。

TVM: An Automated End-to-End Optimizing Compiler for Deep Learning

cs.LG, Machine Learning, 1802.04799, OSDI 2018

在 2021 HKU 暑研时看的

2018 年由 Tianqi Chen 提出的 TVM 框架,在它的官方文档中主要看了 AutoTVM、Ansor、NNVM 编译器以及 NNVM 的接替者 Relay 编译器。

一些想法

我似乎是第一次接触 TVM 这种非传统编程语言的编译器。TVM 项目整体看来和 LLVM 那么一点相似。

下面的 TVM 均特指 AutoTVM,以及继任者 Ansor。这里参考了亮神的编译比赛 https://github.com/mlzeng/CSC2020-USTC-FlammingMyCompiler 中做的一些 Pass。

TVM 得到 Relay 优化过的计算图输入后,在编译阶段把优化(Schedule)和代码生成(Code Lowering)分开,期间产生了类似 LLVM IR 的「中间代码」TIR。编译原理里见过的一些常量传播/常量折叠、自动 inline 的优化 Pass 在 Relay 上层编译器对流图的化简中也有体现,但是图基本单位是算子、没有那么原子。TVM 对于计算图的优化看上去也不会检测图中算子的冗余性,直接展开模板后进行搜索。这里用了 ML 来评估代价,选出了 K 个较快的模型后用模拟退火法选出较优的 schedule,大大加快 auto tuning 时间。

TVM 从 TIR 到给后端输出 LLVM IR 还需要一次 CodeGenLLVM。

我尝试了之前在编译原理上没有达成的目标:编译了 LLVM,即使关闭 Debug 模式资源消耗也极高。

build-llvm

build-tvm-runtime

tvm-auto-scheduler

tvm-auto-tuning

微软的 ONNX 也做了类似的事情:提供一个通用的模型格式和 Runtime,在 Runtime 上加上一些图优化(虽然大家都只用这种格式)。不过用 ONNX 框架本身的 Runtime 没跑起来,用 TVM 导入 ONNX 模型是成功了。

TVM 这种 DSL 对计算的描述方式都是 behavior level 的,当做 loop transformation 的时候考虑了硬件信息(Cache/PE array),这种方式生成代码非常方便,但对多任务多硬件的时候描述能力似乎不足。希望有种 data centric 的描述方式,去描述 data 在各个硬件之间如何流动,包括如何切分一块 data,如何封装计算单元(MAC,PE array,or Board),如何切分一个算子。

Relay: A High-Level Compiler for Deep Learning

cs.LG, Machine Learning, 1904.08368

在 2021 HKU 暑研时看的

一些想法

Marisa Kirisame 说他 TVM Relay 中也参照了 OCaml 编译器的一些实现,感觉也应该看一下 FP 的东西。

https://tvm.apache.org/docs/dev/relay_add_op.html:可以在计算图中加入自定义的 op

Dynamic Tensor Rematerialization

cs.LG, Machine Learning, 2006.09616

在 2021 HKU 暑研时看的

是看了 TVM Relay 后看的,是同作者 Marisa Kirisame 的另外一篇关于 ML 且 FP 的文章。

一些想法

感觉 FP 以及编译器的实现很神奇,有空一定要去学。

VPIPE: A Virtualized Acceleration System for Achieving Efficient and Scalable Pipeline Parallel DNN Training

IEEE, Transactions on Parallel and Distributed Systems

https://ieeexplore.ieee.org/document/9472938

http://www.cs.hku.hk/~heming/papers/tpds21-vpipe.pdf

去 HKU 暑研之前学长在忙的文章

以及作者还有诚哥(

DAPPLE: A Pipelined Data Parallel Approach for Training Large Models

cs.DC, Distributed, Parallel, and Cluster Computing, 2007.01045

XPipe: Efficient Pipeline Model Parallelism for Multi-GPU DNN Training

cs.LG, Machine Learning, 1911.04610

Guiding Deep Learning System Testing using Surprise Adequacy

cs.SE, Software Engineering, 1808.08444

On the Naming of Methods: A Survey of Professional Developers

cs.SE, Software Engineering, 2102.13555

感觉是非常好玩的一份调查

Security

When the Guard failed the Droid: A case study of Android malware

cs.CR, Cryptography and Security, 2003.14123

这篇文章介绍了 Android 上恶意应用程序的各种攻击方式(比如 Smali)和检测恶意 Android APK 包的系统(Drebin, Kirin ..)。

在玩 CTF 时曾对 Android Binary 感到有兴趣(只是后面更熟悉 Web 而很难同时学习多个方向),而且作为一个 Android 用户,了解自己手机及其危害也不是一件坏事。

Machine Learning

How could Neural Networks understand Programs? (OSCAR)

cs.PL, Programming Languages, 2105.04297

是 LUG 的学长 Dinglan Peng 发的 ICML 顶会,在某周末浏览了一下,也是关于 PL 的文章(并没有太看懂

BlockChain

HotStuf: BFT Consensus in the Lens of Blockchain

cs.DC, Distributed, Parallel, and Cluster Computing, 1803.05069

在 2021 HKU 暑研时看的

最后没看懂区块链,继续 System 了(

最后

有些在 arXiv 上标着 cs.PL 的我更觉得是 ML(比如胖大佬的 OSCAR 在 ICML 上),而 Marisa Kirisame 的两篇 cs.LG 我更觉得是机器学习系统的系统优化,不是很懂(

有一些文章可能要付费,我放 OneDrive 上了,密码是我常用 ID(六位小写字母)(