我正在使用 CuPy (7.0.0) 并尝试使用简单的示例脚本获取并发流:
import cupy as cp
# creating streams
map_streams = []
for i in range(0, 100):
map_streams.append(cp.cuda.stream.Stream(non_blocking=True))
asize = (1000, 100)
# creating arrays on the device
x = cp.ones(asize)
y = cp.ones(asize)
z = cp.ndarray(asize)
# do multiplications in the streams
for stream in map_streams:
with stream:
z = x * y
Run Code Online (Sandbox Code Playgroud)
但乘法是顺序执行的。
==8339== Profiling result:
Start Duration Grid Size Block Size Regs* SSMem* DSMem* Device Context Stream Name
[...]
432.83ms 18.688us (782 1 1) (128 …Run Code Online (Sandbox Code Playgroud)