是否可以将 NVIDIA GPIDirect RDMA 与 NVIDIA nvJPEG 一起使用?
从 RDMA 技术的描述来看,这应该是可能的,但似乎 nvJPEG 接口只需要主机内存输入。
您可以使用 nvJPEG 对设备内存中的原始数据进行编码,并将输出存储在设备内存中。您可以使用 nvjpegEncodeImage() ,然后使用 nvjpegEncodeRetrieveBitstreamDevice()。
关于解码,您可以使用带有_DEVICE后端的批处理API!它允许传递设备指针
Nvidia nvJPEG 使用混合方法进行 JPEG 解码。有些代码在CPU上执行,有些在GPU上执行。
特别参见解耦函数https://docs.nvidia.com/cuda/nvjpeg/index.html#nvjpeg-de Coupled-decode-api
所以,不,这是不可能的。
CUDA工具包12.6版注意事项: https://docs.nvidia.com/cuda/nvjpeg/index.html#nvjpeg-de Coupled-decode-api
这里我看到有两种方法:
NVJPEG_BACKEND_HYBRID
- 使用 CPU 进行霍夫曼解码。
NVJPEG_BACKEND_GPU_HYBRID
- 使用 GPU 进行霍夫曼解码。当批量大小大于 50 时,nvjpegDecodeBatched 将使用 GPU 解码具有交错扫描的基线 JPEG 图像。解耦的 API 将使用 GPU 辅助 Huffman 解码。
我猜 CUDA 可以使用以下方法进行霍夫曼解码:
NVJPEG_BACKEND_GPU_HYBRID
。
注意:这两种方法似乎不属于内置 JPEG 硬件解码器(仅在企业级 GPU 中存在),因此应通过 CUDA 核心完成。