Shortcuts

Setting up TorchRec

In this section, we will:

  • Understand requirements for using TorchRec

  • Set up an environment to integrate TorchRec

  • Run basic TorchRec code

System Requirements

TorchRec is routinely tested on AWS Linux only and should work in similar environments. Below demonstrates the compatability matrix that is currently tested:

Python Version

3.9, 3.10, 3.11, 3.12

Compute Platform

CPU, CUDA 11.8, CUDA 12.1, CUDA 12.4

Aside from those requirements, TorchRec’s core dependencies are PyTorch and FBGEMM. If your system is compatible with both libraries generally, then it should be sufficient for TorchRec.

Version Compatability

TorchRec and FBGEMM have matching version numbers that are tested together upon release:

  • TorchRec 1.0 is compatible with FBGEMM 1.0

  • TorchRec 0.8 is compatible with FBGEMM 0.8

  • TorchRec 0.8 may not be compatible with FBGEMM 0.7

Furthermore, TorchRec and FBGEMM are released only when a new PyTorch release happens. Therefore, specific versions of TorchRec and FBGEMM should correspond to a specific PyTorch version:

  • TorchRec 1.0 is compatible with PyTorch 2.5

  • TorchRec 0.8 is compatible with PyTorch 2.4

  • TorchRec 0.8 may not be compatible with PyTorch 2.3

Installation

Below we show installations for CUDA 12.1 as an example. For CPU, CUDA 11.8, or CUDA 12.4, swap cu121 for cpu, cu118, or cu124 respectively.

pip install torch --index-url https://download.pytorch.org/whl/cu121
pip install fbgemm-gpu --index-url https://download.pytorch.org/whl/cu121
pip install torchmetrics==1.0.3
pip install torchrec --index-url https://download.pytorch.org/whl/cu121
pip install torch
pip install fbgemm-gpu
pip install torchrec
pip install torch --index-url https://download.pytorch.org/whl/nightly/cu121
pip install fbgemm-gpu --index-url https://download.pytorch.org/whl/nightly/cu121
pip install torchmetrics==1.0.3
pip install torchrec --index-url https://download.pytorch.org/whl/nightly/cu121

You also have the ability to build TorchRec from source to develop with the latest changes in TorchRec. To build from source, check out this reference.

Run a Simple TorchRec Example

Now that we have TorchRec properly set up, let’s run some TorchRec code! Below, we’ll run a simple forward pass with TorchRec data types: KeyedJaggedTensor and EmbeddingBagCollection:

import torch

import torchrec
from torchrec.sparse.jagged_tensor import JaggedTensor, KeyedJaggedTensor

ebc = torchrec.EmbeddingBagCollection(
    device="cpu",
    tables=[
        torchrec.EmbeddingBagConfig(
            name="product_table",
            embedding_dim=16,
            num_embeddings=4096,
            feature_names=["product"],
            pooling=torchrec.PoolingType.SUM,
        ),
        torchrec.EmbeddingBagConfig(
            name="user_table",
            embedding_dim=16,
            num_embeddings=4096,
            feature_names=["user"],
            pooling=torchrec.PoolingType.SUM,
        )
    ]
)

product_jt = JaggedTensor(
    values=torch.tensor([1, 2, 1, 5]), lengths=torch.tensor([3, 1])
)
user_jt = JaggedTensor(values=torch.tensor([2, 3, 4, 1]), lengths=torch.tensor([2, 2]))

# Q1: How many batches are there, and which values are in the first batch for product_jt and user_jt?
kjt = KeyedJaggedTensor.from_jt_dict({"product": product_jt, "user": user_jt})

print("Call EmbeddingBagCollection Forward: ", ebc(kjt))

Save the above code to a file named torchrec_example.py. Then, you should be able to execute it from your terminal with:

python torchrec_example.py

You should see the output KeyedTensor with the resulting embeddings. Congrats! You have correctly installed and ran your first TorchRec program!

Docs

Access comprehensive developer documentation for PyTorch

View Docs

Tutorials

Get in-depth tutorials for beginners and advanced developers

View Tutorials

Resources

Find development resources and get your questions answered

View Resources