很多人也没概念。简单解释,CPU 多核相当于 1n 而不是 1/n。
这不像其它单输出多个核心部件的机械,每一个“核心”都是八分之一,综合 100%。多核就是多个 CPU,每一个都是能输出的整体。
所谓“并行”就相当于同时运行 n 个独立的进程,把一个大项目分成若干个毫不相干的小项目,每一段互不干扰。
但问题是有些计算就必须得是序列的,前一个结果是下一个输入,不能独立。这样其余核心就成了摆设。
所以给多核优化很难,有时甚至不可能。霸王硬上弓的话,恐怕还没单线程的算法快。
按 502GCC 和我个人编译 marlin 固件的速度看 M3 Max 怎么也得比 M1 强三倍,但是 3D 打印切片时必须要前后衔接,所以切我这个模型最快也就只有 55%。
这也就是高端 CPU 的尴尬,取决于你干什么,实际上效益递减很明显。三倍系统未必就永远三倍快。而两台系统里选,如果更快的效益递减到一定程度,其它部分就成了决定性优势。
这不像其它单输出多个核心部件的机械,每一个“核心”都是八分之一,综合 100%。多核就是多个 CPU,每一个都是能输出的整体。
所谓“并行”就相当于同时运行 n 个独立的进程,把一个大项目分成若干个毫不相干的小项目,每一段互不干扰。
但问题是有些计算就必须得是序列的,前一个结果是下一个输入,不能独立。这样其余核心就成了摆设。
所以给多核优化很难,有时甚至不可能。霸王硬上弓的话,恐怕还没单线程的算法快。
按 502GCC 和我个人编译 marlin 固件的速度看 M3 Max 怎么也得比 M1 强三倍,但是 3D 打印切片时必须要前后衔接,所以切我这个模型最快也就只有 55%。
这也就是高端 CPU 的尴尬,取决于你干什么,实际上效益递减很明显。三倍系统未必就永远三倍快。而两台系统里选,如果更快的效益递减到一定程度,其它部分就成了决定性优势。