nihui / rife-ncnn-vulkan

RIFE, Real-Time Intermediate Flow Estimation for Video Frame Interpolation implemented with ncnn library
MIT License
821 stars 68 forks source link

如何实现多张图片GPU并行处理 #53

Open JiadiLee opened 2 years ago

JiadiLee commented 2 years ago

大佬,咨询一下,我使用的是Nvidia 3080Ti显卡,16GB显存,GPU计算队列有8个,thread_num 设置的是8,传入16张(1080P)图片的处理耗时与thread_num 为1的情况下基本一致,即每张图片处理30ms,总耗时为16*30ms,GPU利用率只有20%左右。vulkan会将图片传入不同的计算队列,但是GPU没有并行处理,请教下有什么办法能够提高GPU使用率么?

image

之前看batch_inference的方式是创建多个Extractor,但是这里通过vulkan的方式如何创建多个我比较困惑

ArchieMeng commented 2 years ago

我记得只设置thread_num只是指定当前extractor 会用到的CPU线程数。 要不试试单独再开个thread创一个extractor ?下游python 项目都是多进程跑的,C层面多线程应该一样的。

JiadiLee commented 2 years ago

我记得只设置thread_num只是指定当前extractor 会用到的CPU线程数。 要不试试单独再开个thread创一个extractor ?下游python 项目都是多进程跑的,C层面多线程应该一样的。

是接口python化的大佬!我之前也有参考你的rife-ncnn-vulkan-python的项目,感恩开源! 在使用vulkan的情况下,extract的时候要用到VkComputer的参数,单独开thread的意思是,专门创建extractor的线程,把所有的参数都丢进去,然后vulkan进行fence的等待吗?