Extension of the Intelligent Tensors library to take advantage of fast GPU-based linear algebra
Author ITensor
39 Stars
Updated Last
1 Year Ago
Started In
November 2019

⚠️ INFO: This repository is deprecated

The source code for this package has been moved into the ITensors.jl monorepo here. Note that the name of the module/package was renamed from ITensorsGPU to ITensorGPU for consistency with other packages that are based on ITensors.jl, and additionally it is now registered under the new name ITensorGPU. Please refer to that repository for the latest changes, and raise any issues in the ITensors.jl monorepo here.

ITensorsGPU: Intelligent Tensors with GPU acceleration



This package extends the functionality of ITensors.jl to make use of CUDA-enabled GPUs to accelerate tensor contractions and factorizations. It sits on top of the wonderful CUDA.jl package and uses NVIDIA's cuTENSOR library for high-performance tensor operations.

Installing ITensorsGPU.jl


  • Julia 1.3 or later
  • CUDA 10.1 or later -- Currently only NVIDIA GPUs are supported. NVIDIA drivers are required so that Julia can make use of the NVIDIA GPU on your system.
  • cuTENSOR v1.0.0 or later -- A specialized library for perfoming permutation-free tensor contractions on the GPU. needs to be in your LD_LIBRARY_PATH so that CUDA.jl will be able to find it.
  • ITensors.jl

To properly install CUDA with Julia, it may be helpful to first follow the CUDA.jl installation instructions and test that you have that installed properly and that it is able to use cuTENSOR. You can run the commands:

julia> using CUDA.CUTENSOR

julia> CUTENSOR.has_cutensor()

julia> CUTENSOR.version()

to check that CUDA.jl can see the version of cuTENSOR you have installed.

Once you have all of the dependencies installed, you can then go ahead and install ITensorsGPU.jl with the following command:

julia> ]

pkg> add

To check if this has all worked, you can run the package tests using:

julia> ]

pkg> test ITensorsGPU


Take a look at the examples/ directory for examples of running ITensor calculations on the GPU.

For an application of ITensorsGPU.jl to more sophisticated tensor network calculations, take a look at PEPS.jl.

For some background on the development and design of this package, you can take a look at this blog post by Katie Hyatt, original author of the ITensorsGPU.jl package.