问题遇到的现象和发生背景 :
想要让这个进程在gpu上跑,看看在gpu上最多能跑多少路这样的视频,通过网上查找都是说通过设置CUDA_VISIBLE_DEVICES来实现,但是打开任务管理器,cpu占满了,但是gpu为0%。
通过在windows下的cmd窗口输入nvidia-smi能看见gpu的情况
问题相关代码
import cv2
from time import time
import multiprocessing
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
begin_time = time()
addr_list = []
addr_list.append('D:\\video\\1.mp4')
def video_open(file_path):
camera = cv2.VideoCapture(file_path)
while camera.isOpened():
(ret, frame) = camera.read()
if not ret:
break
cv2.imshow("origin", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
camera.release()
cv2.destroyAllWindows()
end_time = time()
print(f'spending time is {end_time - begin_time}')
if __name__ == "__main__":
for i in range(1):
video_th = multiprocessing.Process(target=video_open, args=(addr_list[0], ))
video_th.start()
我的解答思路和尝试过的方法
尝试用过NVIDIA的控制面板中的3D设置中的程序设置,将对应的python.exe和pycharm.exe程序加载进去,但是在pycharm中通过运行这段代码时,显示还是没有在gpu上跑:
我想要达到的结果
让这段程序在gpu上运行而不是在cpu上跑,并且能够试试看见gpu的使用率。