GPU系统调用
摘要:GPU程序越来越复杂,需要执行越来越复杂的任务。现代GPU越来越支持可编程性增强的特性,比如共享虚拟内存和硬件缓存一致性,使其能够运行更多类型的程序。但是,在通用编程方面,GPU仍然缺乏直接调用系统调用的能力。本文探讨了如何在GPU程序中直接调用通用系统调用。我们研究了系统调用应该如何与现有的GPGPU编程模型相融合,其中数千个线程以执行组的层次结构组织:系统调用应该在个别GPU任务中调用,还是在不同的执行组级别调用?在这些执行组的层次结构中,GPU系统调用的合理排序语义是什么?为了研究这些问题,我们实现了GENESYS——一种允许GPU程序在Linux操作系统中调用系统调用的机制。需要对Linux进行许多微妙的更改,因为现有的内核假设只有CPU调用系统调用。我们使用微基准测试和三个应用程序来分析GENESYS的性能,这些应用程序涉及内核的文件系统、网络和内存分配子系统。最后,我们分析了Linux的所有系统调用对GPU的适用性。
作者:J''an Vesel''y, Arkaprava Basu, Abhishek Bhattacharjee, Gabriel Loh, Mark Oskin, Steven K. Reinhardt
论文ID:1705.06965
分类:Operating Systems
分类简称:cs.OS
提交时间:2017-05-29