异步计算

http://zh.d2l.ai/chapter_computational-performance/async-computation.html

“用户可以用各种前端语言编写python程序,如Python和C++”
这句话,在英文版中对应原文意为
“用户可以用各种前端语言编写pytorch程序,如Python和C++。”

2 Likes

换用CPU后,
numpy: 0.5302 sec
torch: 0.1184 sec
是否说明非异步

1 Like
cpu:
numpy: 0.3311 sec
torch: 0.1122 sec

torch还是做了异步处理才能快一些

异步计算是不是有点流水线的理念。。。。。。。。。。。。。。。。。。。。。。。。

应该是没有在计算完成前返还控制权,但计算是异步的?

# GPU计算热身
device = d2l.try_gpu()
a = torch.randn(size=(1000, 1000), device=device)
b = torch.mm(a, a)

with d2l.Benchmark('numpy'):
    for _ in range(10):
        a = numpy.random.normal(size=(1000, 1000))
        b = numpy.dot(a, a)

with d2l.Benchmark('torch'):
    for _ in range(10):
        a = torch.randn(size=(1000, 1000), device=device)
        b = torch.mm(a, a)

为什么在使用Benchmark之前还要先定义一边a,b呢?

创建一个 1000x1000 的随机矩阵 a 并在选定设备上进行矩阵乘法 b = torch.mm(a, a)。这个步骤是为了确保 GPU 已经处于工作状态,避免第一次调用 GPU 计算时的延迟。