ITensorsGPU.jl
ITensorsGPU.jl copied to clipboard
Extension of the Intelligent Tensors library to take advantage of fast GPU-based linear algebra
⚠️ 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
toITensorGPU
for consistency with other packages that are based on ITensors.jl, and additionally it is now registered under the new nameITensorGPU
. 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
Dependencies:
- 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.
libcutensor.so
needs to be in yourLD_LIBRARY_PATH
so thatCUDA.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()
true
julia> CUTENSOR.version()
v"1.2.1"
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 https://github.com/ITensor/ITensorsGPU.jl.git
To check if this has all worked, you can run the package tests using:
julia> ]
pkg> test ITensorsGPU
Examples
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.