PyTorch multiprocessing slow

pytorch 并发

python multiprocessing的坑

https://pythonspeed.com/articles/python-multiprocessing/

查看cpu cache size

https://stackoverflow.com/questions/30207256/how-to-get-the-size-of-cpu-cache-in-linux

lscpu | grep cache


getconf -a | grep CACHE

cache miss

https://stackoverflow.com/questions/10082517/simplest-tool-to-measure-c-program-cache-hit-miss-and-cpu-time-in-linux

/usr/bin/time -v YourProgram.exe

多进程vs多线程

https://www.quora.com/Which-one-is-a-better-option-to-go-with-for-a-single-process-multithreading-or-multiprocessing

可能是cpu切换process, context switch

软亲和性(affinity): 就是进程要在指定的 CPU 上尽量长时间地运行而不被迁移到其他处理器,Linux 内核进程调度器天生就具有被称为 软 CPU 亲和性(affinity) 的特性,这意味着进程通常不会在处理器之间频繁迁移。这种状态正是我们希望的,因为进程迁移的频率小就意味着产生的负载小。

做了cpu绑定, 似乎没有影响。 如果绑定得不对(都绑定到一个), 会严重降低效率。

cpu资源隔离