分类 technique 下的文章

之前就听说实验室可以给新生配台电脑,最近感觉手里用了三年半的拯救者Y7000P大限将至:初步感觉是机械硬盘或者固态上了年头,打算直接搞一台新电脑
甘Sir说买电脑的额度是2w左右,大喜过望得搞了一台1.8w 的 2022拯救者Y9000K,做了一把冤大头

个人比较喜欢拯救者工业化和商务的风格,以及内部的细节做工。之前拆Y7000P的时候就对内存屏蔽罩和散热布局好感拉满,对比我之前的暗影精灵4属实差别很大。暗影精灵4因为我之前拆机时候的静电搞坏了一个内存槽。然后电池还因为bios的问题鼓包过。导致我从此就成了惠普黑。

Y9000K 比隔壁同配置的枪神6贵了1k,不过枪神6过于电竞风格所以不太感冒

值得一提的是联想近几年在流氓软件的道路上越走越远,预装了一个辣鸡联想浏览器以及软件管家之类的流氓产品,电脑管家和傻逼百度串通改edge主页

CPU 是 i7-12800HX, 2.3GHz
12代 intel alder lake 架构
32GB内存,自带硬盘 1TB
后来自己加了一条 1TB 的 samsung 980 PRO

硬盘的 S.M.A.R.T. 数据显示电脑在买回来的时候通电时间就有一百多个小时,unsafe shutdowns 20次
作为对比,新买的 980 PRO 通电时间4小时,unsafe shutdowns 0次
emmm,不知道之前被用来干啥了。。。

用 samsung magican 跑了一发自带硬盘 benchmark :

对比一下 980 PRO 的 benchmark 结果:

emmmm,随机读写差了将近三倍。。。
搞得我都想把 980 PRO 弄成系统盘了
想想还是不折腾了

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