#9 · Primary category: GPU Compute Frameworks

SpeedTorch

cpu-gpu-transfer cpu-pinned-tensors cuda cuda-tensors cuda-variables cupy data-transfer embeddings embeddings-trained gpu gpu-transfer machine-learning natural-language-processing nlp pinned-cpu-tensors pytorch pytorch-tensors pytorch-variables sparse sparse-modeling

Library for faster pinned CPU <-> GPU transfer in Pytorch

Project last updated:02/21/20

GitHub Stars

682

Forks

40

Contributors

3

License

MIT

Why we included this project

Training large embedding tables in PyTorch often means fighting for GPU memory. SpeedTorch takes a different route: it pins Cupy tensors to CPU memory and moves data between CPU and GPU much faster than PyTorch's own pinned tensors in many cases, so you can leave idle parameters in system RAM and only push the active ones over during sparse training steps. The factory classes build models and optimizers that pick between CUDA, pinned CPU, or Cupy-backed storage, and they extend sparse training to optimizers like Adam and AdamW, which normally only handle dense gradients. If you do NLP or other embedding-heavy work, this is worth testing. Just keep in mind the project has been dormant since 2020 and the speedup depends on your CPU core count, so benchmark it against plain PyTorch on your own hardware first.

Articles for this project

No articles for this project yet.

To suggest a topic or contribute an article, contact us.

Related projects in this category