2 ms·
(NVIDIAn here but speaking for myself) - We still have a ways to go, but we're working on it! Really trying to integrate with open data/ML standards, though som
by zetazzed 7y ago
(NVIDIAn here but speaking for myself) - We still have a ways to go, but we're working on it! Really trying to integrate with open data/ML standards, though sometimes an existing codebase doesn't exactly match the GPU approach, so the best thing we can do is to match their APIs...
TensorRT is now integrated with Tensorflow: https://github.com/tensorflow/tensorrt https://github.com/tensorflow/tensorrt
and it speaks ONNX, which is PyTorch's and MXNet's inference format.
cuDF (open source) supports the Pandas API on GPUs, using the Arrow standard for interop https://github.com/rapidsai/cudf https://github.com/rapidsai/cudf
and cuML (also open source) matches the scikit-learn interface: https://github.com/rapidsai/cuml https://github.com/rapidsai/cuml
PyTorch and a bunch of other DL libraries can interop with cuDF/cuML (as in, do your ETL in those libs and get zero-copy, on-GPU transfer to the DL framework) via the dlpack standard. This is a general standard from DMLC that any similar ML library can adopt.
Also, if you're doing nvJpeg decompression on GPU, also check out Dali, which implements super-fast data loading and augmentation steps all on GPU. For this one, there wasn't an existing standard, so we had to build our own approach, but it integrates with PyTorch, TF, and MXNet pipelines nicely: https://docs.nvidia.com/deeplearning/sdk/dali-developer-guide/docs/index.html https://docs.nvidia.com/deeplearning/sdk/dali-developer-guid...
Hopefully it becomes like the cuDNN of data prep - integrated into all the frameworks well enough that you don't even have to think about it.