From: David <dst...@cn...> - 2022-03-18 09:26:33
|
Hi, To answer the question: NVIDIA has a concept of virtual architecture and real architecture. Virtual architecture describes capabilities of different families of GPUs, while real architecture aims to target specific HW. More info here: https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#options-for-steering-gpu-code-generation-generate-code NVIDIA also allows for fatbinaries, where multiple versions of the same code can be precompiled, and at runtime the matching one will be used. If no real architecture code is found, but virtual one is present, it will be compiled JIT. That's how we do it. https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html#virtual-architecture-feature-list [note: SM=shader model = compute capability] So, Wolfgang should be covered in sense of the virtual architectures, but he might want to specifically target all GPUs he has (sm_XX) + generate PTX for other generations(code=compute_86) and thus avoid JIT compile penalization. (I didn't test it, but hopefully it will work) "-gencode=arch=compute_60,code=sm_60 " "-gencode=arch=compute_61,code=sm_61 " "-gencode=arch=compute_70,code=sm_70 " "-gencode=arch=compute_75,code=sm_75 " "-gencode=arch=compute_80,code=sm_80 " "-gencode=arch=compute_86,code=compute_86,sm_86") KR, David > -------- Forwarded Message -------- > Subject: [scipion-users] xmipp & cuda compilation > Date: Thu, 17 Mar 2022 13:04:49 +0100 (CET) > From: Lugmayr, Wolfgang <w.l...@uk...> > Reply-To: Mailing list for Scipion users > <sci...@li...> > To: Mailing list for Scipion users <sci...@li...> > > > > dear xmipp developers, > > after recompiling xmipp for amd and intel cpus i found different cuda > flags in xmipp.conf > > they come from scripts/config.py > if nvcc_version >= 11: > flags = ("--x cu -D_FORCE_INLINES -Xcompiler -fPIC " > "-ccbin %(CXX_CUDA)s -std=c++14 --expt-extended-lambda " > # generate PTX only, and SASS at the runtime (by setting > code=virtual_arch) > "-gencode=arch=compute_60,code=compute_60 " > "-gencode=arch=compute_61,code=compute_61 " > "-gencode=arch=compute_75,code=compute_75 " > "-gencode=arch=compute_86,code=compute_86") > > we have different gpu architectures on the cluster: > P100 - compute_60 Pascal > V100 - compute_70 Volta > A100 - compute_80 Ampere > > consumer cards on analysis pcs: > GTX 1080ti - compute_61 Pascal > RTX 6000 - compute_75 Touring > RTX A6000 - compute_86 Ampere > > what do this flags mean and do you generate cuda code and compile it > at runtime? > should i change the flags to 60,70,80 instead of your choice for our > cluster? > > cheers, > wolfgang > > > > _______________________________________________ > scipion-users mailing list > sci...@li... > https://lists.sourceforge.net/lists/listinfo/scipion-users > > For new subscribers, please read: > https://listas.csic.es/cnb/wws/help/user#subscribe > > In short, send an email to:sy...@cn... > with the subject: bioinfo Name surname |