什么是tbb::scalable_allocator
英特尔线程构建模块实际上是引擎盖下呢?
它肯定是有效的.我刚用它来采取25%的折扣的应用程式的执行时间(并看到在CPU利用率从〜200%4核系统上增加至350%),通过改变单个std::vector
给std::vector
.另一方面,在另一个应用程序中,我看到它将已经很大的内存消耗加倍并将内容发送到交换城市.
英特尔自己的文档并没有给出太多帮助(例如本常见问题解答末尾的简短部分 ).在我自己去挖掘代码之前,谁能告诉我它使用了什么技巧?
更新:刚刚第一次使用TBB 3.0,并且从Scalable_allocator看到了我最好的加速.改变单一vector
的vector
(从测试的Debian莱尼,核2,与TBB 3.0)的从85S东西35S减少的运行时间.
分配器上有一篇很好的论文:英特尔线程构建模块中可扩展多核软件的基础
我的经验有限:我用我的AI应用程序用tbb :: scalable_allocator重载全局new/delete.但时间档案几乎没有变化.我没有比较内存使用情况.