sycl - 在 dpc++ malloc_shared 我们可以在 2 个 gpus 之间共享一个缓冲区吗
问题描述
在 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);
解决方案
不,没有使用sycl::malloc_shared
.
如果您希望在多个设备(和主机)之间使用相同的缓冲区,则需要使用sycl::malloc_host
(过载处理sycl::context
),但这可能会对性能产生负面影响。
推荐阅读
- visual-c++ - VS C++ 可以通过命令行卸载吗?
- tensorflow - 将 tfrecord 文件批量加载到 keras 模型中
- php - 哪种表结构在性能方面更有效
- react-native - 使用 ExtraData 更改 FlatList 中的唯一项
- python - 如何选择具有多个条件的行?
- scala - 将 JSON 从 URL 转换为数据帧(Pyspark 和 Scala)
- javascript - 如何将 api 中的数据和标签插入数据集中以显示图表
- .net - 使用接近设备发送和接收对 APDU 命令的响应
- vue.js - Vue cli 在服务期间删除 outputDir 文件夹
- python - 在 Python 中设置变量的值时出现运行时错误