torch.set_num_threads

 


t.set_num_threads 可以设置 PyTorch 进行 CPU 多线程并行计算时所占用的线程数,用来限制 PyTorch 所占用的 CPU 数目;
t.set_printoptions可以用来设置打印 tensor 时的数值精度和格式;
 

t.set_num_threads 在linux和Windows平台都有效:

 

linux有效,不用时cpu占用能到5000%,设置3后,就到到300%。

linux中,5000%代表用了50个cpu核,300%代表用了3个cpu核。

 

不设置,cpu51%,时间15ms

不设置的时候,torch会自动加载很多cpu,导致CPU占用很高。

 

2的时候,cpu17%,时间15ms变为25ms

4的时候,cpu34%,时间17ms

8的时候,cpu67%,

import time

import torch
import numpy as np

while True:
    torch.set_num_threads(4)
    arr= np.zeros((100,3, 300, 300), dtype=np.float32)

    # start=time.time()
    # arr=arr-0.406
    # print('time1',time.time()-start)
    aaa=torch.from_numpy(arr)
    start = time.time()
    aaa.add_(-0.406)
    print('time2',time.time() - start)
    # aaa.add_(-0.406)
    # print(aaa)
    # inps = torch.zeros(50, 3, 300, 300)
    time.sleep(0.007)

版权声明:本文为jacke121原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。