Home for cuQuantum Python & NVIDIA cuQuantum SDK C++ samples

Overview

Welcome to the cuQuantum repository!

This public repository contains two sets of files related to the NVIDIA cuQuantum SDK:

  • samples: All C/C++ sample codes for the cuQuantum SDK.
  • python: The open-sourced cuQuantum Python project.

Other components of the cuQuantum SDK can be accessed following the instruction given in the documentation.

Installation

The instructions for how to build and install these files are given in both the subfolders and the cuQuantum documentation.

License

All files hosted in this repository are subject to the BSD-3-Clause license.

Comments
  • compile tensornet_example.cu

    compile tensornet_example.cu

    Hi, I'm trying to follow the instruction on how to compile tensornet_example.cu . https://github.com/NVIDIA/cuQuantum/tree/main/samples/cutensornet I think it is inconsistent because it says: export CUTENSORNET_ROOT=<path_to_custatevec_root>

    but currently, custatevec is not part of CUTENSORNET anymore. It is a part of CUQUANTUM. I'm referring to this pair:

    https://developer.download.nvidia.com/compute/cuquantum/redist/cuquantum/linux-x86_64/cuquantum-linux-x86_64-0.1.0.30-archive.tar.xz

    https://developer.download.nvidia.com/compute/cutensor/redist/libcutensor/linux-x86_64/libcutensor-linux-x86_64-1.4.0.6-archive.tar.xz Can you please clarify how to configure the Makefile to work with these 2 libs and compile tensornet_example.cu ? Thanks Jan Balewski, NERSC

    opened by balewski 18
  • [Question/Issue] How to install cuquantum on WSL2 Ubuntu-20.04?

    [Question/Issue] How to install cuquantum on WSL2 Ubuntu-20.04?

    I'm unsure whether this is an issue on my side, or just a missing compatibility. **Problem: ** When installing custatevec on Ubuntu 20.04 (on WSL2), it fails on the last of the following commands:

    $ wget https://developer.download.nvidia.com/compute/cuquantum/22.07.1/local_installers/cuquantum-local-repo-ubuntu2004-22.07.1_1.0-1_amd64.deb
    $ sudo dpkg -i cuquantum-local-repo-ubuntu2004-22.07.1_1.0-1_amd64.deb
    $ sudo cp /var/cuquantum-local-repo-ubuntu2004-22.07.1/cuquantum-*-keyring.gpg /usr/share/keyrings/
    $ sudo apt-get update
    $ sudo apt-get -y install cuquantum cuquantum-dev cuquantum-doc
    

    with the following cuBLAS error:

    $ sudo apt-get -y install cuquantum cuquantum-dev cuquantum-doc
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:
    
    The following packages have unmet dependencies:
     cuquantum : Depends: libcublaslt.so.11 but it is not installable or
                          libcublas-11-0 but it is not installable or
                          libcublas-11-1 but it is not installable or
                          libcublas-11-2 but it is not installable or
                          libcublas-11-3 but it is not installable or
                          libcublas-11-4 but it is not installable or
                          libcublas-11-5 but it is not installable or
                          libcublas-11-6 but it is not installable
                 Depends: libcutensor1 but it is not installable
    E: Unable to correct problems, you have held broken packages.
    

    Any idea what may be causing this? I looked into cublas directly but I thought it may be too invasive for such a simple issue. I already have custatevec working on an ubuntu GCP instance so I'm wondering if this is due to an incompatibility with Window's Subsystem for Linux 2.

    opened by Sinestro38 9
  • CUTENSORNET_STATUS_CUTENSOR_VERSION_MISMATCH in line 198

    CUTENSORNET_STATUS_CUTENSOR_VERSION_MISMATCH in line 198

    I am trying to compile the examples in the /samples/cutensornet directory and the compilation is successful, however it fails at runtime with the error in the subject.

    According to https://github.com/NVIDIA/cuQuantum/blob/main/samples/cutensornet/README.md and https://docs.nvidia.com/cuda/cuquantum/cutensornet/index.html as of today, I must have

    I actually have

    • cuTensorNet v1.1.0
    • CUDA Version: 11.7 with Driver Version: 515.48.07
    • cuTENSOR v1.6.0.3 (from libcutensor-linux-x86_64-1.6.0.3-archive)

    So I meet all the requirements but still get that error. The only thing I can think is that libcutensor libraries are split in 3 directories for 10.2, 11, and 11.0 so perhaps CUDA v11.7 is too new? Does anybody has any insight?

    opened by davide-q 9
  • pip module search for libcublas.so.11

    pip module search for libcublas.so.11

    Environment:

    • Ubuntu 20.04 LTS
    • Python 3.8

    Symptom:

    >>> import cuquantum
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/usr/local/lib/python3.8/dist-packages/cuquantum/__init__.py", line 1, in <module>
        from cuquantum import custatevec
      File "/usr/local/lib/python3.8/dist-packages/cuquantum/custatevec/__init__.py", line 1, in <module>
        from cuquantum.custatevec.custatevec import *
    ImportError: libcublas.so.11: cannot open shared object file: No such file or directory
    
    

    I guess that pyculib should be converted to pip, too.

    opened by sanori 6
  • Dockerfile install

    Dockerfile install

    Hi,

    I am trying to build an image with cuquantum and the code samples installed. Here is what I have so far, compiled from the README here and in the documentation :

    FROM nvcr.io/nvidia/pytorch:22.01-py3
    
    # Get cuquantum
    ENV CUQUANTUM_ROOT=/opt/cuquantum0.1.0.30
    ARG TARFILE=cuquantum-linux-x86_64-0.1.0.30-archive.tar.xz
    RUN wget -O /tmp/${TARFILE} \
        https://developer.download.nvidia.com/compute/cuquantum/redist/linux-x86_64/${TARFILE} && \
        mkdir -p ${CUQUANTUM_ROOT} && \
        tar xvf /tmp/${TARFILE} -C ${CUQUANTUM_ROOT} --strip-components=1 && \
        #lib64/ is missing, symlink it to lib/
        ln -s ${CUQUANTUM_ROOT}/lib ${CUQUANTUM_ROOT}/lib64 && \
        rm /tmp/${TARFILE}
    ENV LD_LIBRARY_PATH=${CUQUANTUM_ROOT}/lib:${LD_LIBRARY_PATH}
    
    # Install cuquantum python bindings, remove previous cupy version
    # TODO verify
    RUN pip uninstall -y cupy-cuda115 && \
        conda install -c conda-forge cuquantum-python
    
    
    ENV CUSTATEVEC_ROOT=${CUQUANTUM_ROOT}
    ENV CUTENSORNET_ROOT=${CUQUANTUM_ROOT}
    ENV PATH=/usr/local/cuda/bin/:${PATH}
    
    # Get samples repo
    ARG TARFILE=v0.1.0.0.tar.gz
    RUN wget -O /tmp/${TARFILE} https://github.com/NVIDIA/cuQuantum/archive/refs/tags/${TARFILE} && \
        mkdir -p ${CUSTATEVEC_ROOT}/code_samples && \
        tar xvf /tmp/${TARFILE} -C ${CUSTATEVEC_ROOT}/code_samples --strip-components=1 && \
        rm /tmp/${TARFILE}
    

    The image has cupy-cuda115, the conda install of cuquantum-python installs another version of cupy as a dependency so I uninstall the old one (it will complain during import if both are available). make all builds successfully (though the lib64->lib symlink is needed for it to work), but I am unable to run the python samples without hitting import errors.

    I am running on an intel-chip mac, just trying to clear up the import errors before we run this on a cloud instance with an nvidia GPU mounted in.

    Before posting any stacktraces, am I on the right track here? Maybe I should use a different base image that has an equivalent version of cupy. I'm also not sure if the cuda version is incompatible.

    I am happy to submit a PR with the working Dockerfile once we figure this all out :)

    question 
    opened by brian-dellabetta 6
  • distributed_reset_configuration failed:  python: distributed_interfaces/cutensornet_distributed_interface_mpi.c:44: unpackMpiCommunicator: Assertion `sizeof(MPI_Comm) == comm->commSize' failed.

    distributed_reset_configuration failed: python: distributed_interfaces/cutensornet_distributed_interface_mpi.c:44: unpackMpiCommunicator: Assertion `sizeof(MPI_Comm) == comm->commSize' failed.

    Under the following setup.

    Hardware: INSPUR NF5488M5 (V100 version) environments: Ubuntu 22.04.1 LTS Python 3.9.15 Nvidia driver: 525.60.13 cuda_12.0.r12.0 mpich-4.0.3 mpi4py 3.1.4 cuquantum 22.11.0

    When I run /cuQuantum/python/samples/cutensornet/tensornet_example_mpi.py , I got. It works .

    *** Printing is done only from the root process to prevent jumbled messages ***
    The number of processes is 1
    cuTensorNet-vers: 20000
    ===== root process device info ======
    GPU-name: Tesla V100-SXM3-32GB
    GPU-clock: 1597000
    GPU-memoryClock: 958000
    GPU-nSM: 80
    GPU-major: 7
    GPU-minor: 0
    ========================
    Include headers and define data types.
    Define network, modes, and extents.
    Initialize the cuTensorNet library and create a network descriptor.
    Process 0 has the path with the lowest FLOP count 4299161600.0.
    Find an optimized contraction path with cuTensorNet optimizer.
    Allocate workspace.
    Create a contraction plan for cuTENSOR and optionally auto-tune it.
    Contract the network, each slice uses the same contraction plan.
    Check cuTensorNet result against that of cupy.einsum().
    num_slices: 1
    0.8309440016746521 ms / slice
    5173.82831013358 GFLOPS/s
    Free resource and exit.
    

    But when I run /cuQuantum/python/samples/cutensornet/tensornet_example_mpi_auto.py I got the following error.

    *** Printing is done only from the root process to prevent jumbled messages ***
    The number of processes is 1
    cuTensorNet-vers: 20000
    ===== root process device info ======
    GPU-name: Tesla V100-SXM3-32GB
    GPU-clock: 1597000
    GPU-memoryClock: 958000
    GPU-nSM: 80
    GPU-major: 7
    GPU-minor: 0
    ========================
    Include headers and define data types.
    Define network, modes, and extents.
    Initialize the cuTensorNet library and create a network descriptor.
    python: distributed_interfaces/cutensornet_distributed_interface_mpi.c:44: unpackMpiCommunicator: Assertion `sizeof(MPI_Comm) == comm->commSize' failed.
    [suneo:06467] *** Process received signal ***
    [suneo:06467] Signal: Aborted (6)
    [suneo:06467] Signal code:  (-6)
    [suneo:06467] [ 0] /lib/x86_64-linux-gnu/libc.so.6(+0x42520)[0x7f55bbd22520]
    [suneo:06467] [ 1] /lib/x86_64-linux-gnu/libc.so.6(pthread_kill+0x12c)[0x7f55bbd76a7c]
    [suneo:06467] [ 2] /lib/x86_64-linux-gnu/libc.so.6(raise+0x16)[0x7f55bbd22476]
    [suneo:06467] [ 3] /lib/x86_64-linux-gnu/libc.so.6(abort+0xd3)[0x7f55bbd087f3]
    [suneo:06467] [ 4] /lib/x86_64-linux-gnu/libc.so.6(+0x2871b)[0x7f55bbd0871b]
    [suneo:06467] [ 5] /lib/x86_64-linux-gnu/libc.so.6(+0x39e96)[0x7f55bbd19e96]
    [suneo:06467] [ 6] /home/tsujino/anaconda3/envs/cu/lib/libcutensornet_distributed_interface_mpi.so(+0x123c)[0x7f553de1223c]
    [suneo:06467] [ 7] /home/tsujino/anaconda3/envs/cu/lib/libcutensornet_distributed_interface_mpi.so(cutensornetMpiCommRank+0x23)[0x7f553de122ae]
    [suneo:06467] [ 8] /home/tsujino/anaconda3/envs/cu/lib/python3.9/site-packages/cuquantum/cutensornet/../../../../libcutensornet.so.2(+0x105462)[0x7f554c705462]
    [suneo:06467] [ 9] /home/tsujino/anaconda3/envs/cu/lib/python3.9/site-packages/cuquantum/cutensornet/../../../../libcutensornet.so.2(+0x1056bd)[0x7f554c7056bd]
    [suneo:06467] [10] /home/tsujino/anaconda3/envs/cu/lib/python3.9/site-packages/cuquantum/cutensornet/../../../../libcutensornet.so.2(+0x1058ed)[0x7f554c7058ed]
    [suneo:06467] [11] /home/tsujino/anaconda3/envs/cu/lib/python3.9/site-packages/cuquantum/cutensornet/../../../../libcutensornet.so.2(cutensornetDistributedResetConfiguration+0xd3)[0x7f554c703633]
    [suneo:06467] [12] /home/tsujino/anaconda3/envs/cu/lib/python3.9/site-packages/cuquantum/cutensornet/cutensornet.cpython-39-x86_64-linux-gnu.so(+0x26063)[0x7f554e65c063]
    [suneo:06467] [13] python[0x507457]
    [suneo:06467] [14] python(_PyObject_MakeTpCall+0x2ec)[0x4f068c]
    [suneo:06467] [15] python(_PyEval_EvalFrameDefault+0x525b)[0x4ec9fb]
    [suneo:06467] [16] python[0x4e689a]
    [suneo:06467] [17] python(_PyEval_EvalCodeWithName+0x47)[0x4e6527]
    [suneo:06467] [18] python(PyEval_EvalCodeEx+0x39)[0x4e64d9]
    [suneo:06467] [19] python(PyEval_EvalCode+0x1b)[0x59329b]
    [suneo:06467] [20] python[0x5c0ad7]
    [suneo:06467] [21] python[0x5bcb00]
    [suneo:06467] [22] python[0x4566f4]
    [suneo:06467] [23] python(PyRun_SimpleFileExFlags+0x1a2)[0x5b67e2]
    [suneo:06467] [24] python(Py_RunMain+0x37e)[0x5b3d5e]
    [suneo:06467] [25] python(Py_BytesMain+0x39)[0x587349]
    [suneo:06467] [26] /lib/x86_64-linux-gnu/libc.so.6(+0x29d90)[0x7f55bbd09d90]
    [suneo:06467] [27] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80)[0x7f55bbd09e40]
    [suneo:06467] [28] python[0x5871fe]
    [suneo:06467] *** End of error message ***
    Aborted (core dumped)
    

    I have tried other smaples and those works.

    opened by koichi-tsujino 5
  • How to run a browser for jupyter notebook in cuQuantum docker environment ?

    How to run a browser for jupyter notebook in cuQuantum docker environment ?

    Nvidia cuQuantum Following the well designed documentation I was able to successfully get this to run. I am using terminal to write my Quantum experiments.I want to know how to run a jupyter notebook inside docker container. After installing jupyter in docker and running it gives a link that doesn't open in a browser of my linux system.I then installed firefox inside cuQuantum docker but it doesn't launch the browser. Gives a display not found error.How can I run my experiments in jupyter ?

    opened by ShashiQubit 3
  • cuQuantum Python v22.03.0: `ModuleNotFoundError: No module named 'typing_extensions'`

    cuQuantum Python v22.03.0: `ModuleNotFoundError: No module named 'typing_extensions'`

    Workaround: please install typing_extensions via pip or conda:

    pip install typing_extensions
    

    or

    conda install -c conda-forge typing_extensions
    

    Symptom:

    leof:~$ python
    Python 3.9.10 | packaged by conda-forge | (main, Feb  1 2022, 21:24:37) 
    [GCC 9.4.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import cuquantum
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/home/leof/miniforge3/envs/ppqwqq/lib/python3.9/site-packages/cuquantum/__init__.py", line 2, in <module>
        from cuquantum import cutensornet
      File "/home/leof/miniforge3/envs/ppqwqq/lib/python3.9/site-packages/cuquantum/cutensornet/__init__.py", line 2, in <module>
        from cuquantum.cutensornet.configuration import *
      File "/home/leof/miniforge3/envs/ppqwqq/lib/python3.9/site-packages/cuquantum/cutensornet/configuration.py", line 19, in <module>
        from .memory import BaseCUDAMemoryManager
      File "/home/leof/miniforge3/envs/ppqwqq/lib/python3.9/site-packages/cuquantum/cutensornet/memory.py", line 7, in <module>
        from typing_extensions import Protocol, runtime_checkable
    ModuleNotFoundError: No module named 'typing_extensions'
    
    opened by leofang 3
  • CircuitToEinsum for QFT: batched_amplitudes slower than qsim full statevector simulation

    CircuitToEinsum for QFT: batched_amplitudes slower than qsim full statevector simulation

    I was trying to reproduce the statement in https://developer.nvidia.com/blog/nvidia-announces-cuquantum-beta-availability-record-quantum-benchmark-and-quantum-container/, in particular

    Quantum Fourier Transform – accelerated from 29 mins down to 19 secs

    I'm running the following minimal reproducer on Python 3.8, cuQuantum 22.11, NVIDIA A100 40 GB (on a GCP instance)

    import time
    
    import cirq
    import qsimcirq
    import cupy
    from cuquantum import contract
    from cuquantum import CircuitToEinsum
    
    simulator = qsimcirq.QSimSimulator()
    
    # See https://quantumai.google/cirq/experiments/textbook_algorithms
    def make_qft(qubits):
        """Generator for the QFT on a list of qubits."""
        qreg = list(qubits)
        while len(qreg) > 0:
            q_head = qreg.pop(0)
            yield cirq.H(q_head)
            for i, qubit in enumerate(qreg):
                yield (cirq.CZ ** (1 / 2 ** (i + 1)))(qubit, q_head)
    
    
    def simulate_and_measure(nqubits):
        qubits = cirq.LineQubit.range(nqubits)
        qft = cirq.Circuit(make_qft(qubits))
    
        myconverter = CircuitToEinsum(qft, backend=cupy)
    
        tic = time.time()
        simulator.simulate(qft)
        elapsed_qsim = time.time() - tic
        out = {"qsim": elapsed_qsim}
    
        # CUDA expectation
        pauli_string = {qubits[0]: 'Z'}
        expression, operands = myconverter.expectation(pauli_string, lightcone=True)
        tic = time.time()
        contract(expression, *operands)
        elapsed = time.time() - tic
        out["cu_expectation"] = elapsed
    
        # CUDA Batched amplitudes
        # Fix everything but last qubit
        fixed_states = "0" * (nqubits - 1)
        fixed_index = tuple(map(int, fixed_states))
        num_fixed = len(fixed_states)
        fixed = dict(zip(myconverter.qubits[:num_fixed], fixed_states))
        expression, operands = myconverter.batched_amplitudes(fixed)
        tic = time.time()
        contract(expression, *operands)
        elapsed = time.time() - tic
        out["cu_batched"] = elapsed
    
        return out
    
    for i in [10, 15, 20, 25, 30]:
        print(i, simulate_and_measure(i))
    

    Output (the numbers are elapsed in seconds; 10, 15, ... are number of qubits for QFT):

    10 {'qsim': 0.9677999019622803, 'cu_expectation': 0.29337143898010254, 'cu_batched': 0.07590365409851074}
    15 {'qsim': 0.023270368576049805, 'cu_expectation': 0.019628524780273438, 'cu_batched': 0.3687710762023926}
    20 {'qsim': 0.03504538536071777, 'cu_expectation': 0.023822784423828125, 'cu_batched': 0.9347813129425049}
    25 {'qsim': 0.14235782623291016, 'cu_expectation': 0.02486586570739746, 'cu_batched': 2.39030122756958}
    30 {'qsim': 3.4044816493988037, 'cu_expectation': 0.028923749923706055, 'cu_batched': 4.6819908618927}
    35 {'cu_expectation': 1.0615959167480469, 'cu_batched': 10.964831829071045}
    40 {'cu_expectation': 0.03381609916687012, 'cu_batched': 82.43729209899902}
    

    I wasn't able to go to 35 qubits for qsim, because I got CUDA OOM for qsim. The much reduced memory usage alone is sufficient to prefer cuQuantum for this use case.

    But, I was hoping that batched_amplitudes is going to be faster than a full statevector simulation, because some qubits are fixed. But it doesn't seem to be the case. I have also tried reduced_density_matrix (not shown, so that the code snippet is short). The only one that is consistently fast is expectation. I wonder if I did it wrongly?

    opened by rht 2
  • Why QSimOptions is throwing error when use_sampler disable_gpu are used ?

    Why QSimOptions is throwing error when use_sampler disable_gpu are used ?

    `TypeError Traceback (most recent call last) Cell In [9], line 2 1 ngpus = 1 ----> 2 qsim_options = qsimcirq.QSimOptions( 3 max_fused_gate_size = 2 4 , cpu_threads = 1 5 , gpu_mode = ngpus 6 , use_sampler = True 7 , disable_gpu = False 8 ) 9 qsim_simulator = qsimcirq.QSimSimulator(qsim_options)

    TypeError: init() got an unexpected keyword argument 'use_sampler'`

    It's working fine when these 2 options are removed. I am using windows wsl to run it locally using conda installation. The documentation clearly has these options. Link to QSimOptions

    opened by ShashiQubit 1
  • cirq + custatevec on multiple GPUs

    cirq + custatevec on multiple GPUs

    Hi,

    I am using cuQuantum Appliance 22.07-Cirq to experiment with cirq + custatevec simulator. I am able to run up to 32 qubit simulations with single NVidia A100 40GB gpu as expected.

    However I am having trouble getting it to run on multiple GPUs. I am using QSimOptions.gpu_mode = 2 to achieve this as explained in cuquantum docs but I only see one gpu being used thourgh nvidia-smi command, and I run out of memory for 33 qubits.

    here is a minimal reproducer:

    import cirq
    import qsimcirq
    
    def load_test(num_gpus = 1, depth = 4, num_qubits = 30):
    	circuit = cirq.testing.random_circuit(
    		qubits = num_qubits,
    		n_moments = depth,
    		op_density = 1.0,
    		random_state = 1)
    	num_gates = len(list(circuit.all_operations()))
    	options = {"gpu_mode": num_gpus, "n_subsvs": num_gpus}
    	qsim_simulator = qsimcirq.QSimSimulator(options)
    	result = qsim_simulator.simulate(circuit)
    	print (f"DONE with qubits: {num_qubits} \t gates: {num_gates} \t depth: {depth} \t")
    
    load_test(num_gpus = 2, depth = 2, num_qubits = 30) # uses  ~8GB memory on 1 gpu
    load_test(num_gpus = 2, depth = 2, num_qubits = 32) # uses ~32GB memory on 1 gpu
    load_test(num_gpus = 2, depth = 2, num_qubits = 33) # CUDA error: out of memory vector_mgpu.h 116
    

    I have 2 NVidia A100 gpu's on my machine and here is the output of nvidia-smi for 32 qubit case:

    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 510.47.03    Driver Version: 510.47.03    CUDA Version: 11.6     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |                               |                      |               MIG M. |
    |===============================+======================+======================|
    |   0  NVIDIA A100-SXM...  Off  | 00000000:00:04.0 Off |                    0 |
    | N/A   35C    P0    82W / 400W |  33561MiB / 40960MiB |     23%      Default |
    |                               |                      |             Disabled |
    +-------------------------------+----------------------+----------------------+
    |   1  NVIDIA A100-SXM...  Off  | 00000000:00:05.0 Off |                    0 |
    | N/A   43C    P0    75W / 400W |      2MiB / 40960MiB |      0%      Default |
    |                               |                      |             Disabled |
    +-------------------------------+----------------------+----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |    0   N/A  N/A     26614      C   python                          33559MiB |
    +-----------------------------------------------------------------------------+
    

    Am I missing something?

    opened by hthayko 0
Releases(v22.11.0)
  • v22.11.0(Nov 30, 2022)

  • v22.07.1(Aug 4, 2022)

  • v22.07.0(Jul 20, 2022)

  • v22.05.0(May 23, 2022)

  • v22.03.0(Mar 25, 2022)

    First general access release of cuQuantum. Documentation and full release notes for all versions are located here: https://docs.nvidia.com/cuda/cuquantum/index.html

    Source code(tar.gz)
    Source code(zip)
Owner
NVIDIA Corporation
NVIDIA Corporation
Gym for multi-agent reinforcement learning

PettingZoo is a Python library for conducting research in multi-agent reinforcement learning, akin to a multi-agent version of Gym. Our website, with

Farama Foundation 1.6k Jan 09, 2023
ComPhy: Compositional Physical Reasoning ofObjects and Events from Videos

ComPhy This repository holds the code for the paper. ComPhy: Compositional Physical Reasoning ofObjects and Events from Videos, (Under review) PDF Pro

29 Dec 29, 2022
TResNet: High Performance GPU-Dedicated Architecture

TResNet: High Performance GPU-Dedicated Architecture paperV2 | pretrained models Official PyTorch Implementation Tal Ridnik, Hussam Lawen, Asaf Noy, I

426 Dec 28, 2022
An example of time series augmentation methods with Keras

Time Series Augmentation This is a collection of time series data augmentation methods and an example use using Keras. News 2020/04/16: Repository Cre

九州大学 ヒューマンインタフェース研究室 229 Jan 02, 2023
A human-readable PyTorch implementation of "Self-attention Does Not Need O(n^2) Memory"

memory_efficient_attention.pytorch A human-readable PyTorch implementation of "Self-attention Does Not Need O(n^2) Memory" (Rabe&Staats'21). def effic

Ryuichiro Hataya 7 Dec 26, 2022
paper list in the area of reinforcenment learning for recommendation systems

paper list in the area of reinforcenment learning for recommendation systems

HenryZhao 23 Jun 09, 2022
Pip-package for trajectory benchmarking from "Be your own Benchmark: No-Reference Trajectory Metric on Registered Point Clouds", ECMR'21

Map Metrics for Trajectory Quality Map metrics toolkit provides a set of metrics to quantitatively evaluate trajectory quality via estimating consiste

Mobile Robotics Lab. at Skoltech 31 Oct 28, 2022
An official PyTorch implementation of the TKDE paper "Self-Supervised Graph Representation Learning via Topology Transformations".

Self-Supervised Graph Representation Learning via Topology Transformations This repository is the official PyTorch implementation of the following pap

Hsiang Gao 2 Oct 31, 2022
Localized representation learning from Vision and Text (LoVT)

Localized Vision-Text Pre-Training Contrastive learning has proven effective for pre- training image models on unlabeled data and achieved great resul

Philip Müller 10 Dec 07, 2022
CVNets: A library for training computer vision networks

CVNets: A library for training computer vision networks This repository contains the source code for training computer vision models. Specifically, it

Apple 1.1k Jan 03, 2023
Supervision Exists Everywhere: A Data Efficient Contrastive Language-Image Pre-training Paradigm

DeCLIP Supervision Exists Everywhere: A Data Efficient Contrastive Language-Image Pre-training Paradigm. Our paper is available in arxiv Updates ** Ou

Sense-GVT 470 Dec 30, 2022
Official PyTorch implementation of "Adversarial Reciprocal Points Learning for Open Set Recognition"

Adversarial Reciprocal Points Learning for Open Set Recognition Official PyTorch implementation of "Adversarial Reciprocal Points Learning for Open Se

Guangyao Chen 78 Dec 28, 2022
Complex-Valued Neural Networks (CVNN)Complex-Valued Neural Networks (CVNN)

Complex-Valued Neural Networks (CVNN) Done by @NEGU93 - J. Agustin Barrachina Using this library, the only difference with a Tensorflow code is that y

youceF 1 Nov 12, 2021
Continual learning with sketched Jacobian approximations

Continual learning with sketched Jacobian approximations This repository contains the code for reproducing figures and results in the paper ``Provable

Machine Learning and Information Processing Laboratory 1 Jun 30, 2022
This example implements the end-to-end MLOps process using Vertex AI platform and Smart Analytics technology capabilities

MLOps with Vertex AI This example implements the end-to-end MLOps process using Vertex AI platform and Smart Analytics technology capabilities. The ex

Google Cloud Platform 238 Dec 21, 2022
PyTorch implementation HoroPCA: Hyperbolic Dimensionality Reduction via Horospherical Projections

HoroPCA This code is the official PyTorch implementation of the ICML 2021 paper: HoroPCA: Hyperbolic Dimensionality Reduction via Horospherical Projec

HazyResearch 52 Nov 14, 2022
Reliable probability face embeddings

ProbFace, arxiv This is a demo code of training and testing [ProbFace] using Tensorflow. ProbFace is a reliable Probabilistic Face Embeddging (PFE) me

Kaen Chan 34 Dec 31, 2022
Official PyTorch Implementation for "Recurrent Video Deblurring with Blur-Invariant Motion Estimation and Pixel Volumes"

PVDNet: Recurrent Video Deblurring with Blur-Invariant Motion Estimation and Pixel Volumes This repository contains the official PyTorch implementatio

Junyong Lee 98 Nov 06, 2022
Train an imgs.ai model on your own dataset

imgs.ai is a fast, dataset-agnostic, deep visual search engine for digital art history based on neural network embeddings.

Fabian Offert 5 Dec 21, 2021
PyTorch(Geometric) implementation of G^2GNN in "Imbalanced Graph Classification via Graph-of-Graph Neural Networks"

This repository is an official PyTorch(Geometric) implementation of G^2GNN in "Imbalanced Graph Classification via Graph-of-Graph Neural Networks". Th

Yu Wang (Jack) 13 Nov 18, 2022