W.S*_*Sun 11 parallel-processing operating-system gpu
我注意到GPU可以拥有数百个内核,因此可以大大加快并行计算速度.似乎在OS内核中,没有并行算法用于加速.
人们使用OpenMP进行并行计算,但为什么不在内核空间呢?我想OS中有很多需要并行处理的任务,比如处理多个网络连接和数据包,进行加密操作,管理内存,搜索等等......有些防火墙通过匹配模式过滤和监控网络流量,研究型操作系统也可以在运行之前分析程序,这既耗时又可并行化.
那么为什么操作系统不使用GPU来提高性能和吞吐量呢?在GPU上运行OS计算是否有意义?
bdo*_*lan 21
GPU并行处理应用程序要求您运行完全相同的操作数百次.此外,您可以执行哪些操作是有限的 - 分支通常不是一个选项,也不是遍历指针链.
大多数内核操作都不适合这个模型; 内核正在做的很多事情是通过指针管理资源,包括锁定.这根本不适合GPU模型.至于您引用的其他操作:
GPU非常适合数学内核,其中吞吐量是最重要的,延迟是一个小问题 - 数值模拟,这类事情.通常,它们不适合数据管理,或者延迟很关键 - 这正是OS内核所做的事情.这就是操作系统通常不使用GPU加速的原因.
OS内核可以并且确实可以使用其他类型的硬件加速 - 一些机器具有专门用于快速进行一次性加密计算的加密硬件核心.内核可以很好地利用它们,因为它们更适合于内核面临的特定问题.