首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Linux 内核 VS 内存碎片 (上)

(外部)内存碎片是一个历史悠久的 Linux 内核编程问题,随着系统的运行,页面被分配给各种任务,随着时间的推移内存会逐步碎片化,最终正常运行时间较长的繁忙系统可能只有很少的物理页面是连续的。由于 Linux 内核支持虚拟内存管理,物理内存碎片通常不是问题,因为在页表的帮助下,物理上分散的内存在虚拟地址空间仍然是连续的 (除非使用大页),但对于需要从内核线性映射区分配连续物理内存的需求来说就会变的非常困难,比如通过块分配器分配结构体对象 (在内核态很常见且频繁的操作),或对不支持 scatter/gather 模式的 DMA 缓冲器的操作等,会引起频繁的直接内存回收/规整,导致系统性能出现较大的波动,或分配失败 (在慢速内存分配路径会根据页面分配标志位执行不同的操作)。

04

学界 | 多 GPU 加速学习,这是一份崭新的 XGBoost 库

梯度提升是一种可以获得当前最佳性能的监督学习方法,它在分类、回归和排序方面有很好的表现。XGBoost 是一般化梯度提升算法的实现,它在多核和分布式机器上有着高度优化的实现,且能处理稀疏数据。怀卡托大学和英伟达在这一篇论文中描述了标准 XGBoost 库的扩展,它支持多 GPU 的执行,并能显著地减少大规模任务的运行时间。本论文提出的扩展是原版 GPU 加速算法的新进展,它展现出拥有更快速和更高内存效率的策树算法。该算法基于特征分位数(feature quantiles)和梯度提升树其它部分的并行化算法。作者们在 GPU 上实现决策树构建、分位数生成、预测和梯度计算算法,并端到端地加速梯度提升流程。这一过程使得 XGBoost 库可以利用显著提升的内存带宽和大规模并行化 GPU 系统集群。

03
领券