![究竟是什么阻止我们在 GPU 上运行操作系统?](https://linux22.com/image/1619469/%E7%A9%B6%E7%AB%9F%E6%98%AF%E4%BB%80%E4%B9%88%E9%98%BB%E6%AD%A2%E6%88%91%E4%BB%AC%E5%9C%A8%20GPU%20%E4%B8%8A%E8%BF%90%E8%A1%8C%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%EF%BC%9F.png)
现代 GPU 似乎非常灵活。它们可以使用 CUDA 或 OPENCL 自由编程,拥有大量内核,每秒原始指令数完全超过任何 CPU。
它们似乎拥有完整的指令集和大量 RAM。
那么为什么我们不能在其中一个上运行操作系统呢?GPU 缺少 CPU 拥有的什么?
答案1
操作系统位于其上运行的所有进程的中间和是所有 I/O 设备和这些进程之间的通信。进程必须“通过”操作系统才能进行任何 I/O。
因此,除非您正在执行不依赖 I/O 的操作,例如数学运算(这正是 GPU 核心的设计目的),否则您无论如何都要等待内核进行协调。如果 1000 多个 GPU 核心能够随心所欲地处理以太网适配器或 NVME 存储,那将是一场灾难。