You may wish to request a single GPU on a node and all of the nodes' CPUs.  However, the GPUs are bound to specific CPUs so the job will only run on the CPUs associated with the GPU you're running on.  Specifying the --exclusive flag in your job script or requesting all of the node's CPUs will not change this.



From the Slurm documentation on this topic:


If --gres-flags=disable-binding is specified, then any core can be used with the resources, which also increases the speed of Slurm's scheduling algorithm but can degrade the application performance. The --gres-flags=disable-binding option is currently required to use more CPUs than are bound to a GRES (i.e. if a GPU is bound to the CPUs on one socket, but resources on more than one socket are required to run the job). If any core can be effectively used with the resources, then do not specify the cores option for improved speed in the Slurm scheduling logic. 



If you would like to use all cores on a node with one of the GPUs, you must specify this in  your Slurm script:


#SBATCH --gres-flags=disable-binding