gnina

A deep learning framework for molecular docking

https://github.com/gnina/gnina

Science Score: 59.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 8 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, preprints.org, pubmed.ncbi, ncbi.nlm.nih.gov, sciencedirect.com, springer.com, plos.org, mdpi.com, acs.org
  • Committers with academic emails
    50 of 347 committers (14.4%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.5%) to scientific vocabulary

Keywords

cheminformatics computational-chemistry convolutional-neural-networks drug-discovery molecular-modeling

Keywords from Contributors

deep-neural-networks distributed optimizing-compiler tensors jax transpiler theano term-rewriting-system symbolic-computation automatic-differentiation
Last synced: 6 months ago · JSON representation

Repository

A deep learning framework for molecular docking

Basic Info
  • Host: GitHub
  • Owner: gnina
  • License: apache-2.0
  • Language: C++
  • Default Branch: master
  • Homepage:
  • Size: 240 MB
Statistics
  • Stars: 744
  • Watchers: 32
  • Forks: 162
  • Open Issues: 9
  • Releases: 9
Topics
cheminformatics computational-chemistry convolutional-neural-networks drug-discovery molecular-modeling
Created over 10 years ago · Last pushed 8 months ago
Metadata Files
Readme License Citation

README.md

codecov Github CI

gnina (pronounced NEE-na) is a molecular docking program with integrated support for scoring and optimizing ligands using convolutional neural networks. It is a fork of smina, which is a fork of AutoDock Vina.

Help

Please subscribe to our slack team. An example colab notebook showing how to use gnina is available here. We also hosted a workshp on using gnina (video, slides).

Citation

If you find gnina useful, please cite our paper(s):

GNINA 1.3: the next increment in molecular docking with deep learning (Primary application citation)
A McNutt, Y Li, R Meli, R Aggarwal, DR Koes. J. Cheminformatics, 2025
link PubMed

GNINA 1.0: Molecular docking with deep learning (Primary application citation, previous version)
A McNutt, P Francoeur, R Aggarwal, T Masuda, R Meli, M Ragoza, J Sunseri, DR Koes. J. Cheminformatics, 2021
link PubMed ChemRxiv

ProteinLigand Scoring with Convolutional Neural Networks (Primary methods citation)
M Ragoza, J Hochuli, E Idrobo, J Sunseri, DR Koes. J. Chem. Inf. Model, 2017
link PubMed arXiv

Virtual Screening with Gnina 1.0 (Virtual screening citation) J Sunseri, DR Koes D. Molecules, 2021 link Preprints

CACHE Challenge# 1: Docking with GNINA Is All You Need (Example application) I Dunn, S Pirhadi, Y Wang, S Ravindran, C Concepcion, DR Koes. J. Chem. Inf. Model, 2024 link PubMed

Three-Dimensional Convolutional Neural Networks and a Cross-Docked Data Set for Structure-Based Drug Design (Dataset citation) PG Francoeur, T Masuda, J Sunseri, A Jia, RB Iovanisci, I Snyder, DR Koes. J. Chem. Inf. Model, 2020
link PubMed Chemrxiv

Ligand pose optimization with atomic grid-based convolutional neural networks
M Ragoza, L Turner, DR Koes. Machine Learning for Molecules and Materials NIPS 2017 Workshop, 2017
arXiv

Visualizing convolutional neural network protein-ligand scoring
J Hochuli, A Helbling, T Skaist, M Ragoza, DR Koes. Journal of Molecular Graphics and Modelling, 2018
link PubMed arXiv

Convolutional neural network scoring and minimization in the D3R 2017 community challenge
J Sunseri, JE King, PG Francoeur, DR Koes. Journal of computer-aided molecular design, 2018
link PubMed

Docker

A pre-built docker image is available here and Dockerfiles are here.

Installation

We recommend that you use the pre-built binary unless you have significant experience building software on Linux, in which case building from source might result in an executable more optimized for your system. The pre-built binary can be used in WSL.

Ubuntu 22.04

``` apt-get install build-essential git cmake wget libboost-all-dev libeigen3-dev libgoogle-glog-dev libprotobuf-dev protobuf-compiler libhdf5-dev libatlas-base-dev python3-dev librdkit-dev python3-numpy python3-pip python3-pytest libjsoncpp-dev

```

Follow NVIDIA's instructions to install the latest version of CUDA (>= 12.0 is required). Make sure nvcc is in your PATH.

Install OpenBabel3. Note there are errors in bond order determination in version 3.1.1 and older. git clone https://github.com/dkoes/openbabel.git cd openbabel mkdir build cd build cmake -DWITH_MAEPARSER=OFF -DWITH_COORDGEN=OFF -DPYTHON_BINDINGS=ON -DRUN_SWIG=ON .. make make install

Install gnina git clone https://github.com/gnina/gnina.git cd gnina mkdir build cd build cmake .. # -DUSE_SYSTEM_NVTX=1 may be needed with pytorch 2.7.0 and CUDA 12.9 make make install

WSL2 Ubuntu 22.04

```bash sudo apt-get remove nvidia-cuda-toolkit wget https://developer.download.nvidia.com/compute/cuda/12.4.0/localinstallers/cuda12.4.0550.54.14linux.run chmod 700 cuda12.4.0550.54.14linux.run sudo sh cuda12.4.0550.54.14linux.run wget https://developer.download.nvidia.com/compute/cudnn/9.0.0/localinstallers/cudnn-local-repo-ubuntu2204-9.0.01.0-1amd64.deb sudo dpkg -i cudnn-local-repo-ubuntu2204-9.0.01.0-1_amd64.deb sudo cp /var/cudnn-local-repo-ubuntu2204-9.0.0/cudnn-*-keyring.gpg /usr/share/keyrings/ sudo apt-get update sudo apt-get -y install cudnn-cuda-12 apt-get install build-essential git cmake wget libboost-all-dev libeigen3-dev libgoogle-glog-dev libprotobuf-dev protobuf-compiler libhdf5-dev libatlas-base-dev python3-dev librdkit-dev python3-numpy python3-pip python3-pytest libjsoncpp-dev

git clone https://github.com/openbabel/openbabel.git cd openbabel mkdir build cd build cmake -DWITHMAEPARSER=OFF -DWITHCOORDGEN=OFF -DPYTHONBINDINGS=ON -DRUNSWIG=ON .. make -j8 sudo make install

git clone https://github.com/gnina/gnina.git cd gnina mkdir build cd build cmake .. make -j8 sudo make install ```

If you are building for systems with different GPUs (e.g. in a cluster environment), configure with -DCMAKE_CUDA_ARCHITECTURES=all.
Note that the cmake build will automatically fetch and install libmolgrid and torch if they are not already installed.

The scripts provided in gnina/scripts have additional python dependencies that must be installed.

Usage

To dock ligand lig.sdf to a binding site on rec.pdb defined by another ligand orig.sdf: gnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf -o docked.sdf.gz

To perform docking with flexible sidechain residues within 3.5 Angstroms of orig.sdf (generally not recommend unless prior knowledge indicates pocket is highly flexible): gnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --flexdist_ligand orig.sdf --flexdist 3.5 -o flex_docked.sdf.gz

To perform whole protein docking: gnina -r rec.pdb -l lig.sdf --autobox_ligand rec.pdb -o whole_docked.sdf.gz --exhaustiveness 64

To utilize the default ensemble CNN in the energy minimization during the refinement step of docking (10 times slower than the default rescore option): gnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --cnn_scoring refinement -o cnn_refined.sdf.gz

To utilize the default ensemble CNN for every step of docking (1000 times slower than the default rescore option): gnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --cnn_scoring all -o cnn_all.sdf.gz

To utilize all empirical scoring using the Vinardo scoring function: gnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --scoring vinardo --cnn_scoring none -o vinardo_docked.sdf.gz

To utilize a different CNN during docking (see help for possible options): ```

gnina -r rec.pdb -l lig.sdf --autoboxligand orig.sdf --cnn dense -o densedocked.sdf.gz ```

To minimize and score ligands ligs.sdf already positioned in a binding site: gnina -r rec.pdb -l ligs.sdf --minimize -o minimized.sdf.gz

To covalently dock a pyrazole to a specific iron atom on the receptor with the bond formed between a nitrogen of the pyrazole and the iron. gnina -r rec.pdb.gz -l conformer.sdf.gz --autobox_ligand bindingsite.sdf.gz --covalent_rec_atom A:601:FE --covalent_lig_atom_pattern '[$(n1nccc1)]' -o output.sdf.gz

The same as above, but with the covalently bonding ligand atom manually positioned (instead of using OpenBabel binding heuristics) and the ligand/residue complex UFF optimized. gnina -r rec.pdb.gz -l conformer.sdf.gz --autobox_ligand bindingsite.sdf.gz --covalent_lig_atom_position -11.796,31.887,72.682 --covalent_optimize_lig --covalent_rec_atom A:601:FE --covalent_lig_atom_pattern '[$(n1nccc1)]' -o output.sdf.gz

All options: ``` Input: -r [ --receptor ] arg rigid part of the receptor --flex arg flexible side chains, if any (PDBQT) -l [ --ligand ] arg ligand(s) --flexres arg flexible side chains specified by comma separated list of chain:resid --flexdistligand arg Ligand to use for flexdist --flexdist arg set all side chains within specified distance to flexdistligand to flexible --flexlimit arg Hard limit for the number of flexible residues --flexmax arg Retain at at most the closest flex_max flexible residues

Search space (required): --centerx arg X coordinate of the center --centery arg Y coordinate of the center --centerz arg Z coordinate of the center --sizex arg size in the X dimension (Angstroms) --sizey arg size in the Y dimension (Angstroms) --sizez arg size in the Z dimension (Angstroms) --autoboxligand arg Ligand to use for autobox. A multi-ligand file still only defines a single box. --autoboxadd arg Amount of buffer space to add to auto-generated box (default +4 on all six sides) --autoboxextend arg (=1) Expand the autobox if needed to ensure the input conformation of the ligand being docked can freely rotate within the box. --nolig no ligand; for sampling/minimizing flexible residues

Covalent docking: --covalentrecatom arg Receptor atom ligand is covalently bound to. Can be specified as chain:resnum:atomname or as x,y,z Cartesian coordinates. --covalentligatompattern arg SMARTS expression for ligand atom that will covalently bind protein. --covalentligatomposition arg Optional. Initial placement of covalently bonding ligand atom in x,y,z Cartesian coordinates. If not specified, OpenBabel's GetNewBondVector function will be used to position ligand. --covalentfixligatomposition If covalentligatomposition is specified, fix the ligand atom to this position as opposed to using this position to define the initial structure. --covalentbondorder arg (=1) Bond order of covalent bond. Default 1. --covalentoptimizelig Optimize the covalent complex of ligand and residue using UFF. This will change bond angles and lengths of the ligand.

Scoring and minimization options: --scoring arg specify alternative built-in scoring function: ad4scoring default dkoesfast dkoesscoring dkoesscoringold vina vinardo --customscoring arg custom scoring function file --customatoms arg custom atom type parameters file --scoreonly score provided ligand pose --localonly local search only using autobox (you probably want to use --minimize) --minimize energy minimization --randomizeonly generate random poses, attempting to avoid clashes --nummcsteps arg fixed number of monte carlo steps to take in each chain --maxmcsteps arg cap on number of monte carlo steps to take in each chain --nummcsaved arg number of top poses saved in each monte carlo chain --temperature arg temperature for metropolis accept criterion --minimizeiters arg (=0) number iterations of steepest descent; default scales with rotors and usually isn't sufficient for convergence --accurateline use accurate line search --simpleascent use simple gradient ascent --minimizeearlyterm Stop minimization before convergence conditions are fully met. --minimizesinglefull During docking perform a single full minimization instead of a truncated pre-evaluate followed by a full. --approximation arg approximation (linear, spline, or exact) to use --factor arg approximation factor: higher results in a finer-grained approximation --forcecap arg max allowed force; lower values more gently minimize clashing structures --usergrid arg Autodock map file for user grid data based calculations --usergridlambda arg (=-1) Scales usergrid and functional scoring --printterms Print all available terms with default parameterizations --printatom_types Print all available atom types

Convolutional neural net (CNN) scoring: --cnnscoring arg (=1) Amount of CNN scoring: none, rescore (default), refinement, metrorescore (metropolis+rescore), metrorefine (metropolis+refine), all --cnn arg built-in model to use, specify PREFIXensemble to evaluate an ensemble of models starting with PREFIX: alldefaulttodefault131 alldefaulttodefault132 alldefaulttodefault133 crossdockdefault2018 crossdockdefault20181 crossdockdefault201813 crossdockdefault2018131 crossdockdefault2018132 crossdockdefault2018133 crossdockdefault2018134 crossdockdefault20182 crossdockdefault20183 crossdockdefault20184 crossdockdefault2018KD1 crossdockdefault2018KD2 crossdockdefault2018KD3 crossdockdefault2018KD4 crossdockdefault2018KD5 default1.0 default2017 dense dense1 dense13 dense131 dense132 dense133 dense134 dense13PTKD dense13PTKD1 dense13PTKD2 dense13PTKD3 dense13PTKD4 dense13PTKDdef2018 dense13PTKDdef20181 dense13PTKDdef20182 dense13PTKDdef20183 dense13PTKDdef20184 dense2 dense3 dense4 fast generaldefault2018 generaldefault20181 generaldefault20182 generaldefault20183 generaldefault20184 generaldefault2018KD1 generaldefault2018KD2 generaldefault2018KD3 generaldefault2018KD4 generaldefault2018KD5 redockdefault2018 redockdefault20181 redockdefault201813 redockdefault2018131 redockdefault2018132 redockdefault2018133 redockdefault2018134 redockdefault20182 redockdefault20183 redockdefault20184 redockdefault2018KD 1 redockdefault2018KD2 redockdefault2018KD3 redockdefault2018KD4 redockdefault2018KD5 --cnnmodel arg torch cnn model file; if not specified a default model ensemble will be used --cnnrotation arg (=0) evaluate multiple rotations of pose (max 24) --cnnmixempforce Merge CNN and empirical minus forces --cnnmixempenergy Merge CNN and empirical energy --cnnempiricalweight arg (=1) Weight for scaling and merging empirical force and energy --cnncenterx arg X coordinate of the CNN center --cnncentery arg Y coordinate of the CNN center --cnncenterz arg Z coordinate of the CNN center --cnnverbose Enable verbose output for CNN debugging

Output: -o [ --out ] arg output file name, format taken from file extension --outflex arg output file for flexible receptor residues --log arg optionally, write log file --atomterms arg optionally write per-atom interaction term values --atomtermdata embedded per-atom interaction terms in output sd data --posesortorder arg (=0) How to sort docking results: CNNscore (default), CNNaffinity, Energy --fullflexoutput Output entire structure for out_flex, not just flexible residues.

Misc (optional): --cpu arg the number of CPUs to use (the default is to try to detect the number of CPUs or, failing that, use 1) --seed arg explicit random seed --exhaustiveness arg (=8) exhaustiveness of the global search (roughly proportional to time) --nummodes arg (=9) maximum number of binding modes to generate --minrmsdfilter arg (=1) rmsd value used to filter final poses to remove redundancy -q [ --quiet ] Suppress output messages --addH arg automatically add hydrogens in ligands (on by default) --stripH arg remove polar hydrogens from molecule _after performing atom typing for efficiency (off by default - nonpolar are always removed) --device arg (=0) GPU device to use --no_gpu Disable GPU acceleration, even if available.

Configuration file (optional): --config arg the above options can be put here

Information (optional): --help display usage summary --help_hidden display usage summary with hidden options --version display program version ```

CNN Scoring

--cnn_scoring determines at what points of the docking procedure that the CNN scoring function is used. * none - No CNNs used for docking. Uses the specified empirical scoring function throughout. * rescore (default) - CNN used for reranking of final poses. Least computationally expensive CNN option. * refinement - CNN used to refine poses after Monte Carlo chains and for final ranking of output poses. 10x slower than rescore when using a GPU. * all - CNN used as the scoring function throughout the whole procedure. Extremely computationally intensive and not recommended.

The default CNN scoring function is an ensemble of 3 models selected to balance pose prediction performance and runtime: dense13, dense13PTKD3, crossdockdefault2018KD4. The GNINA 1.0 default ensemble is still available as default1.0. More information on these various models can be found in the papers listed above.

Training

Scripts for training pytorch GNINA models and pretrained models can found at https://github.com/RMeli/gnina-torch. Example code for converting a pytorch model into a gnina usable model file is shown below. The metadata should provide information about the input grid resolution, dimension and atom typing. If not provided, defaults will be used.

```python d = { 'resolution': 0.5, 'dimension' : 23.5, 'recmap' : '''AliphaticCarbonXSHydrophobe AliphaticCarbonXSNonHydrophobe AromaticCarbonXSHydrophobe AromaticCarbonXSNonHydrophobe Bromine Iodine Chlorine Fluorine Nitrogen NitrogenXSAcceptor NitrogenXSDonor NitrogenXSDonorAcceptor Oxygen OxygenXSAcceptor OxygenXSDonorAcceptor OxygenXSDonor Sulfur SulfurAcceptor Phosphorus Calcium Zinc GenericMetal Boron Manganese Magnesium Iron''',

'ligmap': '''AliphaticCarbonXSHydrophobe 
AliphaticCarbonXSNonHydrophobe 
AromaticCarbonXSHydrophobe 
AromaticCarbonXSNonHydrophobe
Bromine Iodine
Chlorine
Fluorine
Nitrogen NitrogenXSAcceptor 
NitrogenXSDonor NitrogenXSDonorAcceptor
Oxygen OxygenXSAcceptor 
OxygenXSDonorAcceptor OxygenXSDonor
Sulfur SulfurAcceptor
Phosphorus
GenericMetal Boron Manganese Magnesium Zinc Calcium Iron'''
}

extra = {'metadata':json.dumps(d)}
z = torch.zeros((1,28,48,48,48))

script = torch.jit.trace(model, z)
script.save('gnina_model.pt',_extra_files=extra)    

```

Legacy scripts for training Caffe models can be found at https://github.com/gnina/scripts and sample models at https://github.com/gnina/models.

The DUD-E docked poses used in the original paper can be found here, but we do not recommend training virtual screening models on DUD-E. The CrossDocked2020 set is here.

License

gnina is dual licensed under GPL and Apache. The GPL license is necessitated by the use of OpenBabel (which is GPL licensed). In order to use gnina under the Apache license only, all references to OpenBabel must be removed from the source code.

Owner

  • Name: gnina
  • Login: gnina
  • Kind: organization

GitHub Events

Total
  • Create event: 2
  • Release event: 2
  • Issues event: 120
  • Watch event: 139
  • Issue comment event: 156
  • Push event: 7
  • Pull request review event: 1
  • Fork event: 21
Last Year
  • Create event: 2
  • Release event: 2
  • Issues event: 120
  • Watch event: 139
  • Issue comment event: 156
  • Push event: 7
  • Pull request review event: 1
  • Fork event: 21

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 4,661
  • Total Committers: 347
  • Avg Commits per committer: 13.432
  • Development Distribution Score (DDS): 0.829
Past Year
  • Commits: 40
  • Committers: 3
  • Avg Commits per committer: 13.333
  • Development Distribution Score (DDS): 0.225
Top Committers
Name Email Commits
David Koes d****s@p****u 795
Evan Shelhamer s****r@i****t 601
Jeff Donahue j****e@g****m 559
Jsunseri j****7@p****u 381
Yangqing Jia j****4@g****m 323
Jonathan L Long j****g@c****u 257
Sergio s****a@g****m 149
Kai Li k****d@1****m 144
Rocco Meli r****i@b****k 110
Sergey Karayev s****v@g****m 98
Josh Hochuli j****6@p****u 82
Matt Ragoza m****2@p****u 75
Ronghang Hu h****g@h****m 45
qipeng p****i@1****m 42
Joshua Hochuli j****i@p****u 41
Luke Yeager l****r@g****m 32
Yangqing Jia j****q@g****m 31
Cyprien Noel c****l@g****m 28
Kevin James Matzen k****n@c****u 27
Felix Abecassis f****s@n****m 24
Luc1100 5****0 22
Ross Girshick r****g@e****u 22
philkr p****r 21
T.E.A de Souza t****a@g****m 18
Daniel Golden d****1@g****m 17
linmin m****n@g****m 16
Zhou Mo c****e@g****m 14
Adam Kosiorek a****k@s****m 14
Anatoly Baksheev no@e****l 12
Noiredd s****b@g****m 12
and 317 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 214
  • Total pull requests: 25
  • Average time to close issues: 7 months
  • Average time to close pull requests: 17 days
  • Total issue authors: 141
  • Total pull request authors: 6
  • Average comments per issue: 3.36
  • Average comments per pull request: 1.64
  • Merged pull requests: 23
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 53
  • Pull requests: 2
  • Average time to close issues: 2 months
  • Average time to close pull requests: about 2 hours
  • Issue authors: 46
  • Pull request authors: 1
  • Average comments per issue: 2.57
  • Average comments per pull request: 3.0
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • JonasLi-19 (12)
  • croshong (7)
  • Lili-Cao (6)
  • Kerro-junior (6)
  • Tonylac77 (4)
  • Evert-Homan (4)
  • jooewood (4)
  • RMeli (3)
  • whitelord1994 (3)
  • RJ-Li (3)
  • hnisonoff (3)
  • mmagithub (3)
  • scheah86 (3)
  • alpha-beta-user (2)
  • hnljq (2)
Pull Request Authors
  • RMeli (18)
  • kcgthb (3)
  • Jsunseri (2)
  • RishalAggarwal (2)
  • francoep (1)
  • adithyaakrishna (1)
Top Labels
Issue Labels
nonresponsive (3) wontfix (2)
Pull Request Labels
enhancement (1)

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 2
  • Total maintainers: 1
spack.io: gnina

gnina (pronounced NEE-na) is a molecular docking program with integrated support for scoring and optimizing ligands using convolutional neural networks.

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Forks count: 9.7%
Stargazers count: 11.6%
Average: 19.6%
Dependent packages count: 57.3%
Maintainers (1)
Last synced: 6 months ago

Dependencies

docs/rsc_workshop2021/reveal.js/bower.json bower
  • headjs ~1.0.3
docs/rsc_workshop2021/reveal.js/package.json npm
  • express ^4.16.2 development
  • grunt ^1.0.1 development
  • grunt-autoprefixer ^3.0.4 development
  • grunt-cli ^1.2.0 development
  • grunt-contrib-connect ^1.0.2 development
  • grunt-contrib-cssmin ^2.2.1 development
  • grunt-contrib-jshint ^1.1.0 development
  • grunt-contrib-qunit ^2.0.0 development
  • grunt-contrib-uglify ^3.3.0 development
  • grunt-contrib-watch ^1.0.0 development
  • grunt-retire ^1.0.7 development
  • grunt-sass ^2.0.0 development
  • grunt-zip ~0.17.1 development
  • mustache ^2.3.0 development
  • socket.io ^1.7.3 development
docs/rsc_workshop2021/reveal.js/plugin/multiplex/package.json npm
  • express ~4.13.3
  • grunt-cli ~0.1.13
  • mustache ~2.2.1
  • socket.io ~1.3.7
.github/workflows/CI.yml actions
  • actions/checkout v2 composite
.github/workflows/Coverage.yml actions
  • actions/checkout v2 composite
docker/compat/Dockerfile docker
  • nvidia/cuda 11.6.2-cudnn8-devel-centos7 build
docker/ubuntu-22.04/Dockerfile docker
  • nvidia/cuda 11.7.0-devel-ubuntu22.04 build
docker/ubuntu-24.04/Dockerfile docker
  • nvidia/cuda 12.6.0-devel-ubuntu24.04 build