2020年9月

负责应用: gromacs && IO500

gromacs

tutorial 中提到 ccmake ,可以查看 cmake 全部选项

compile time :
GMX_SMI 必须符合target architecture

GMX_CLANG_CUDA 可能带来 performance degeneration
发现了 cpu 拓扑查看工具 hwloc

azure云

H series : CPU VM
HB : memory bandwidth
HC : dense compute
H型号 : IB 仅支持 intel MPI 5.1
HBv2, HB, HC : 全 IB 支持 (IP over IB)

GPU:
NV(visualization 意义不大), NC(GP-GPU), ND(deep learning)
A100 (unlikely)
NCV3 : 1-4 V100 16GB (older IB)
NDrv2 : 8 V100 32GB (edr IB) (NVLink interconnected)

azure cycle cloud

access restricted to single Resource group
可以在运行时修改配置

记一下看的几个spmm项目的代码结构

spbenchmark

适之学长写的
common/test.h : 测试代码,测试主函数为 testMain

merge-spmm

来自论文design principle for SPMM on GPU

test/gbspmm.cu : 主函数位置,用于处理参数,运行test

graphblas/backend/apspie/spmm.hpp:调用spmmRowKernel

graphblas/backend/apspie/kernels/spmm.hpp: 实现spmmRowKernel

graphblas/util.hpp : 定义参数等

merged path过程:
garphblas/backend/apspie/mxm.hpp : mxm ->
graphblas/backend/apspie/spmm.hpp : mergepath_spmm ->
ext/moderngpu/include/kernels/spmvcsr.cuh : SpmmCsrBinary -> SpmmCsrHost -> SpmmCsrInner ->
1.csrtools.cuh -> PartitionCsrSegReducePrealloc
2.spmvcsr.cuh -> KernelSpmmCsr

block-sparse RNN

prune掉整个块
所有层使用相同超参数

balanced sparsity

每行切块,每块中 prune 掉指定数量元素

shrinkbench :
compression : 总参数数量 / 剩余参数数量