What's the difference between aten and c10?

ATen and c10 are both libraries used in PyTorch, a popular open-source machine learning framework.

ATen: This is the tensor library in PyTorch. It’s a namespace where the tensor operations and functions of PyTorch are defined. It’s built on top of the C++ standard library and is designed to be a replacement for Torch’s TH library. The name “ATen” might be a play on words, since it’s a ten-sor library.

c10: This is the core library for PyTorch. It contains the basic building blocks that PyTorch uses, including things like TensorImpl, the tensor metadata structure, and the dispatcher, which is responsible for routing operator calls to the correct kernel implementation. The name “c10” is short for “caffe2”, the deep learning framework that PyTorch merged with.

As for the differences between ATen and c10, as mentioned above, ATen is the tensor library, where all tensor operations are defined, whereas c10 is the core library, responsible for routing operator calls to the correct kernel implementation.

When it comes to CUDA in ATen and c10, it’s generally referring to the support for CUDA operations in these libraries. CUDA is a parallel computing platform and API model created by NVIDIA, which allows software developers to use a CUDA-enabled graphics processing unit (GPU) for general purpose processing.

3 Likes