金属计算内核的并发执行

时间:2019-09-16 20:07:34

标签: macos gpu metal

让我们说,我大约有10个内核,它们以MTLComputeCommandEncoder编码,而这10个内核在一组正在考虑的数据上运行。

我有这些数据的多个集合,比方说5个,我想在所有单独的数据集合上执行这10个内核。和不!我无法将这些数据集合并为一个数据。

一种幼稚的方法是循环所有数据集,并在每个数据集上一个接一个地执行所有10个内核。

我正在寻找一种可以告诉Metal的方式,这些是独立的数据集,可以并行执行。也就是说,我不想依次编码10个内核,而是要在GPU上同时运行所有这些内核。

CUDA提供Streams以实现此行为。金属提供类似的东西吗?

我知道存在MTLDispatchType,将其设置为MTLDispatchTypeConcurrent,这意味着可以同时运行10个内核,但这不是必须的。

谢谢!

0 个答案:

没有答案