gpt4 book ai didi

python - 可以直接从 gpu 给 Caffe 或 Caffe2 输入数据吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:42:52 25 4
gpt4 key购买 nike

我已经阅读了 caffe2 教程并尝试了预训练模型。我知道 caffe2 将利用 GPU 来运行模型/网络。但是输入数据似乎总是从 CPU(即主机)内存中给出。例如,在 Loading Pre-Trained Models 中, 加载模型后,我们可以通过

result = p.run([img])

但是,图像“img”应该在 CPU 范围内读取。我寻找的是一个框架,可以将图像(从视频解码并仍然驻留在 GPU 内存中)直接传输到预测模型,而不是将其从 GPU 复制到 CPU 范围,然后再次传输到 GPU 进行预测结果。 Caffe或Caffe2是否为python或C++提供了这样的功能或接口(interface)?还是我需要修补 Caffe 才能这样做?非常感谢。


这是我的解决方案:

我在 tensor.h 中发现,函数 ShareExternalPointer() 可以完全满足我的要求。

以这种方式提供 gpu 数据,

pInputTensor->ShareExternalPointer(pGpuInput, InputSize);

然后运行预测网

pPredictNet->Run();

其中 pInputTensor 是预测网 pPredictNet 的入口张量

最佳答案

我不认为你可以在 中做到这一点带有 python 界面。
但我认为它可以使用 c++ 来完成:在 c++ 中,您可以访问 Blobmutable_gpu_data()。您可以编写在设备上运行的代码,并直接从 gpu “填充”输入 Blob 的 mutable_gpu_data()。进行此更新后,caffe 应该能够从那里继续其 net->forward()

更新
2017年9月19日PR #5904被合并到 master 中。此 PR 通过 python 接口(interface)公开了 blob 的 GPU 指针。
您可以直接从 python 访问 blob._gpu_data_ptrblob._gpu_diff_ptr 风险自负

关于python - 可以直接从 gpu 给 Caffe 或 Caffe2 输入数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46045150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com