我试图在具有以下配置的SLURM群集上运行代码-1个节点,2个Nvidia 1080Ti GPU,8个CPU和每个CPU 8GB的RAM。
我正在实现ResNeXt,其数据集包含大约一百万个32x32图像。当我尝试使用torchvision.datasets.ImageFolder
和num_workers
= 4-8运行此代码时,它会通过请求341GB的数据来引发“超出虚拟内存”错误!这似乎有点荒谬。在为代码准备第一批代码时,在第一个trainLoader循环上引发此错误。
最初,我认为这是我的程序出现错误,但是我的程序在num_workers
= 8的情况下在Google Colab上正常运行。我的程序只有在我设置num_workers
= 0时才能运行。在num_workers
= 2时,它会在抛出相同错误之前运行两个时期。
#!/bin/sh
#SBATCH --partition=gpu
#SBATCH --nodelist=compute-2-3
#SBATCH --cpus-per-task=16
#SBATCH --time=24:00:00
#SBATCH --mem=100000M
#SBATCH --job-name="test"
#SBATCH --output=srun_output.out
#SBATCH --mail-user=vsanil@andrew.cmu.edu
#SBATCH --mail-type=FAIL
#SBATCH --gres=gpu:2
srun python -u next.py > srun_output.out