RandomX(rx/0)

这个“RandomX”在门罗在线中显示为“rx/0”(简略显示)。

Randomx算法要求cpu每1个线程分配 16 K的一级缓存,256 K的二级缓存,2 M的三级缓存。

这里可以看出,主要是L3三级缓存大小,而cpu的L3三级缓存不够的话,就无法100%跑满。

当然cpu还有其他算法,各种算法对cpu缓存要求不同。

经观察发现,对于英特尔的一些发烧级平台cpu,由于cpu指令集存在avx512,实际能跑多少线程并不是简单的三级缓存除以2。

这里以i9-10980xe为例,三级缓存≈24.8M,理论只能跑12个线程,但实际上是可以跑满18个线程的,因为存在avx512指令集,实际运行时调用的就是avx512指令集。

总结发现,这些cpu就看L2二级缓存,有多少,就能跑多少线程,比如18M就跑18个线程。

Last updated