有没有什么能阻止GPU开发人员实现(几乎)完全驻留在GPU上的操作系统?

Ada*_*27X 2 compiler-construction operating-system cuda gpu opencl

在过去十年中,GPU已经变得越来越普遍.最近的研究已经成功地将非结构化和基于指针的算法(广度优先搜索Andersen的分析 - 分析是很好的例子)移植到GPU环境中.我们很快就会看到越来越多的图算法用于自适应网格细化和社交网络在GPU环境中执行.

这一趋势的另一个步骤将涉及更复杂的代码结构,如编译器甚至操作系统.据我所知,在这方面还没有做太多工作(尚).传统智慧告诉我们,许多操作系统代码(至少,目前的方式)不适合并行环境,因为它本质上是串行的,基于指针的等等; 但是,我们错误地使用了类似于BFS之类的算法的论证.

我更感兴趣的是,考虑到我们目前使用的工具是否可以实现操作系统或编译器,而不是为什么或为什么没有(或将不会)完成.我想它可以做到,但需要进行大量的算法更改.希望这会产生一个很好的讨论.

一个额外的,有些相关的想法:对精确异常的支持是否是操作系统案例的一个特别困难的障碍?

per*_*eal 6

操作系统不是计算密集型的,主要是基于IO的.因此使用GPU并没有太大的收获.此外,大多数这些IO操作,如磁盘控制,键盘输入......在此时都不可能使用GPU.考虑内存管理,设备主机通信甚至不够快,无法实现实用的分页算法.添加这个需要将页面从CPU来回移动到GPU.它更有可能将用户级工具(如UI shell和实用程序)移动到GPU端.