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
PSANet: Point-wise Spatial Attention Network for Scene Parsing, ECCV2018.

PSANet: Point-wise Spatial Attention Network for Scene Parsing (in construction) by Hengshuang Zhao*, Yi Zhang*, Shu Liu, Jianping Shi, Chen Change Lo

Hengshuang Zhao 217 Oct 30, 2022
An Extendible (General) Continual Learning Framework based on Pytorch - official codebase of Dark Experience for General Continual Learning

Mammoth - An Extendible (General) Continual Learning Framework for Pytorch NEWS STAY TUNED: We are working on an update of this repository to include

AImageLab 277 Dec 28, 2022
Model parallel transformers in Jax and Haiku

Mesh Transformer Jax A haiku library using the new(ly documented) xmap operator in Jax for model parallelism of transformers. See enwik8_example.py fo

Ben Wang 4.8k Jan 01, 2023
Code for our NeurIPS 2021 paper Mining the Benefits of Two-stage and One-stage HOI Detection

CDN Code for our NeurIPS 2021 paper "Mining the Benefits of Two-stage and One-stage HOI Detection". Contributed by Aixi Zhang*, Yue Liao*, Si Liu, Mia

71 Dec 14, 2022
Geometry-Aware Learning of Maps for Camera Localization (CVPR2018)

Geometry-Aware Learning of Maps for Camera Localization This is the PyTorch implementation of our CVPR 2018 paper "Geometry-Aware Learning of Maps for

NVIDIA Research Projects 321 Nov 26, 2022
A high-level Python library for Quantum Natural Language Processing

lambeq About lambeq is a toolkit for quantum natural language processing (QNLP). Documentation: https://cqcl.github.io/lambeq/ User support: lambeq-su

Cambridge Quantum 315 Jan 01, 2023
Face-Recognition-based-Attendance-System - An implementation of Attendance System in python.

Face-Recognition-based-Attendance-System A real time implementation of Attendance System in python. Pre-requisites To understand the implentation of F

Muhammad Zain Ul Haque 1 Dec 31, 2021
This repository provides code for "On Interaction Between Augmentations and Corruptions in Natural Corruption Robustness".

On Interaction Between Augmentations and Corruptions in Natural Corruption Robustness This repository provides the code for the paper On Interaction B

Meta Research 33 Dec 08, 2022
True per-item rarity for Loot

True-Rarity True per-item rarity for Loot (For Adventurers) and More Loot A.K.A mLoot each out/true_rarity_{item_type}.json file contains probabilitie

Dan R. 3 Jul 26, 2022
Deep Learning Theory

Deep Learning Theory 整理了一些深度学习的理论相关内容,持续更新。 Overview Recent advances in deep learning theory 总结了目前深度学习理论研究的六个方向的一些结果,概述型,没做深入探讨(2021)。 1.1 complexity

fq 103 Jan 04, 2023
Neural Re-rendering for Full-frame Video Stabilization

NeRViS: Neural Re-rendering for Full-frame Video Stabilization Project Page | Video | Paper | Google Colab Setup Setup environment for [Yu and Ramamoo

Yu-Lun Liu 9 Jun 17, 2022
Codes for building and training the neural network model described in Domain-informed neural networks for interaction localization within astroparticle experiments.

Domain-informed Neural Networks Codes for building and training the neural network model described in Domain-informed neural networks for interaction

DIDACTS 0 Dec 13, 2021
Medical Image Segmentation using Squeeze-and-Expansion Transformers

Medical Image Segmentation using Squeeze-and-Expansion Transformers Introduction This repository contains the code of the IJCAI'2021 paper 'Medical Im

askerlee 172 Dec 20, 2022
Code for the RA-L (ICRA) 2021 paper "SeqNet: Learning Descriptors for Sequence-Based Hierarchical Place Recognition"

SeqNet: Learning Descriptors for Sequence-Based Hierarchical Place Recognition [ArXiv+Supplementary] [IEEE Xplore RA-L 2021] [ICRA 2021 YouTube Video]

Sourav Garg 63 Dec 12, 2022
Mouse Brain in the Model Zoo

Deep Neural Mouse Brain Modeling This is the repository for the ongoing deep neural mouse modeling project, an attempt to characterize the representat

Colin Conwell 15 Aug 22, 2022
Reinforcement learning framework and algorithms implemented in PyTorch.

Reinforcement learning framework and algorithms implemented in PyTorch.

Robotic AI & Learning Lab Berkeley 2.1k Jan 04, 2023
A Conditional Point Diffusion-Refinement Paradigm for 3D Point Cloud Completion

A Conditional Point Diffusion-Refinement Paradigm for 3D Point Cloud Completion This repo intends to release code for our work: Zhaoyang Lyu*, Zhifeng

Zhaoyang Lyu 68 Jan 03, 2023
Can we do Customers Segmentation using PHP and Unsupervized Machine Learning ? Yes we can ! 🤡

Customers Segmentation using PHP and Rubix ML PHP Library Can we do Customers Segmentation using PHP and Unsupervized Machine Learning ? Yes we can !

Mickaël Andrieu 11 Oct 08, 2022
A Python parser that takes the content of a text file and then reads it into variables.

Text-File-Parser A Python parser that takes the content of a text file and then reads into variables. Input.text File 1. What is your ***? 1. 18 -

Kelvin 0 Jul 26, 2021
A framework for annotating 3D meshes using the predictions of a 2D semantic segmentation model.

Semantic Meshes A framework for annotating 3D meshes using the predictions of a 2D semantic segmentation model. Paper If you find this framework usefu

Florian 40 Dec 09, 2022