我们可以为GPU分配多个进程(即100-500个进程),每个进程在GPU核心上运行吗? 在我的视频处理应用中,我必须使用ffmpeg库来处理视频和音频。如果有超过100个甚至500个这样的独立进程,我想将每个进程分配给GPU会更快。但是,我不知道我们是否可以做到这一点,并且要做到这一点,需要哪些库,工具? CUDA?
答案 0 :(得分:2)
我们可以为GPU分配多个进程(即100-500个进程),每个进程在GPU核心上运行吗?
不,你不能。通常,不可能在GPU核心本身上安排任何。这个级别的"调度"主要由CUDA架构和运行时系统的机制来处理。
基本思想是在代码中以相当低的级别暴露并行性(例如在循环级别)并且正确使用GPU加速语法(例如CUDA,OpenACC,OpenCL等),GPU通常可以使程序的这些元素运行得更快。
但GPU不是设计用于替代CPU核心的替代品。我已经提到了调度因子,以及代码通常需要专门为GPU编译的事实。