cuda - 视频处理到 GPU 内核的多个进程

标签 cuda ffmpeg gpu video-processing

我们能否为 GPU 分配多个进程(即 100-500 个进程),每个进程都在 GPU 内核上运行?
在我的视频处理应用程序中,我必须使用 ffmpeg 库来处理视频和音频。如果有超过 100 甚至 500 个这样的独立进程,我想将每个进程分配给 GPU 会更快。但是,我不知道我们是否可以做到,并且要做到这一点,需要哪些库,工具?库达?

最佳答案

Can we assign a number of processes (i.e. 100-500 processes) to GPU, each process running on a GPU core?



不,你不能。一般来说,不可能在 GPU 核心本身上安排任何事情。这一级别的"dispatch"主要由 CUDA 架构和运行时系统的机制来处理。

基本思想是在代码中相当低的级别(例如循环级别)公开并行性,并正确使用 GPU 加速语法(例如 CUDA、OpenACC、OpenCL 等),GPU 通常可以制作此类元素你的程序运行得更快。

但 GPU 并非旨在替代 CPU 内核。我已经提到了调度因素,以及代码通常需要专门为 GPU 编译的事实。

关于cuda - 视频处理到 GPU 内核的多个进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32069445/

相关文章:

c++ - 如何同时使用推力和 valgrind 来检测内存泄漏?

cuda - CUDA程序/设备的效率

cuda - 无效的设备符号 cudaMemcpyFromSymbol CUDA

c++ - ffplay 不能播放超过一首歌曲

CUDA 多 GPU 执行中的并发

memory - 是什么导致 CUDA 中的指令重放开销

encoding - DirectShow 中的实时视频编码

c++ - 将静音音频数据写入文件ffmpeg C++

java - 视频压缩不适用于 ffmpeg4android_lib 库

cuda - nvidia-smi volatile GPU 利用率解释?