分类 technique 下的文章

Graphcore : IPU (intelligence processing unit)

Poplar SDK : 支持 tensorflow, pytorch, ONNX(open neural network exchange)

PopART : poplar advanced runtime,包含 python 和 C++ api

poplar library : 包括 poplar graph library 和 Poplibs 的系列 C++ library

PopLibs : open source library , 提供 high level function

PopRun : 在多个 IPU 上运行应用,使用 PopDist API 实现

PopVision : 性能可视化

Poplar graph 每个节点运行一个 codelet,直接在 IPU 的并行核上执行代码

之前旧的博客架在 vultr 的日本服务器上,当时配置的时候由于对 linux 管理不太熟悉,导致了一大坨遗留问题。比如主用户直接用的 root,上面架的梯子之类的一堆东西也都在 root 下面,系统用的是 CentOS7

- 阅读剩余部分 -

查看二进制ELF汇编 : hopper disassembler
python辅助gdb : gdb peda / pwndbg

stegsolve : 全色图片破解

foremost : 文件恢复,用于图片等

quipquip : 解决字符替换问题网站
cyberchef : 在线编解码

hexedit / ghex : 编辑文件 hex

eog : 图片浏览器

ltrace : trace library call

john the ripper :

zip2john ./results2.zip > flag.out
./john --wordlist=rockyou.txt flag.out

python:
struct.pack('<I', 0x123456) : 生成小端序hex字符
pwn.p32(0x123456)
pwn.ELF([elf file]) : 查看 ELF 相关信息

elf = pwn.ELF([elf file])
p = elf.process()
prompt = p.recv() # 运行ELF并获取输出
p.sendline(payload)
p.interactive()
s = pwn.remote(host, port)
s.close()

curl -X POST [site] : 发送post请求
curl [site] --data username=[context] :发送 post 请求,指定域

reverse tools :
ghidra
ida
cutter

nvidia-smi topo -m 结果:
SYS : 不能进行 P2P 和 GPUDirectRDMA
PHB(PIX) : 在同一 PCIE fabric 上,可以进行 P2P 和 GPUDirectRDMA

libucm.so 在 ucx 中

经验

cuda aware mpi 很重要
大规模 CPU 并行任务的运行时间可能取决于最慢的一个进程,因此跑之前应该确保机器是空的,否则可能被小任务拖慢

CUDA && MPI

UVA : unified virtual memory
把 host memory 和 同一节点内的所有 GPU memory 视为同一地址空间

GPUDirect

  1. RDMA (通过 IB)
  2. P2P (节点内)

pinned memory && pageable memory

malloc 申请的 host memory 通常为 pageable (内存可以被 kernel 移动,比如到swap)
RDMA 传输不通过 kernel,因此不 aware 页表,故 RDMA 传输的内存在拷贝时不能被移动,为 pinned memory

fftw

选项:

--enable-threads
--enable-openmp
# 分别对应 fftw3_thread 和 fftw3_openmp library
--enable-mpi # 打开 mpi

安装

./configure --enable-threads --enable-openmp --enable-mpi --prefix=$PREFIX
make -j32
make install

libxc

./configure --prefix=$PREFIX