我不确定。我可以在四个核心上编写一个大的 memset(例如 10 MB)来获得加速吗?
这种 ram-chip 并行化是否可能,以及触发其他线程的时间成本有多大——是超过一毫秒还是更少?
我不确定。我可以在四个核心上编写一个大的 memset(例如 10 MB)来获得加速吗?
这种 ram-chip 并行化是否可能,以及触发其他线程的时间成本有多大——是超过一毫秒还是更少?
你指出了一个正确的问题,同时很难给出一个简单的答案。涉及到几个方面。
更大的 PC 有多个内存总线。较小的只有一个。在单内存总线系统上,这没有任何意义。如果您的系统有多个内存总线(通道),那么您的数据数组可能会在内存库之间任意拆分。如果整个数组都位于同一个内存库中,则并行化将毫无用处。弄清楚阵列的布局又是一项开销。换句话说,在内核之间拆分操作之前,有必要弄清楚这是否值得做。
简单的答案是,这些难以预测的开销很可能会消耗收益并使整体结果变得更糟。
同时对于某些架构上的一个非常大的内存区域来说,这是有道理的。