1

在 sycl/dpc++ malloc_shared 中,我知道可以创建一个缓冲区,该缓冲区可以在主机和具有以下功能的单个 gpu 之间共享。

void* malloc_shared(size_t num_bytes,
                    const sycl::device& dev,
                    const sycl::context& ctxt);

或者

int *data = malloc_shared<int>(N, q);

我想知道是否存在可以跨多个 GPU 共享相同数据/缓冲区的东西?类似下面的东西

int *data = malloc_shared<int>(N, q1,q2);
4

1 回答 1

1

不,没有使用sycl::malloc_shared.

如果您希望在多个设备(和主机)之间使用相同的缓冲区,则需要使用sycl::malloc_host(过载处理sycl::context),但这可能会对性能产生负面影响。

于 2021-11-15T19:05:43.990 回答