From 367324b89c943a01d27c4a58f4eadf81c0369a20 Mon Sep 17 00:00:00 2001 From: ZHANG Jing Date: Wed, 2 Oct 2024 17:07:16 +0200 Subject: [PATCH] update --- figures/DDP.png | Bin 0 -> 216343 bytes tutorials/parallel_computing.ipynb | 787 +++++++++++++++++++++++++---- 2 files changed, 687 insertions(+), 100 deletions(-) create mode 100644 figures/DDP.png diff --git a/figures/DDP.png b/figures/DDP.png new file mode 100644 index 0000000000000000000000000000000000000000..c9c2a4cecec2a713996bebce843cbe0af26f36cc GIT binary patch literal 216343 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≥X%%DVxB4pJRtrFRJ-VCFss(okr#G755_(vzv42& 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 literal 0 HcmV?d00001 diff --git a/tutorials/parallel_computing.ipynb b/tutorials/parallel_computing.ipynb index 73d9f40..f1eed04 100644 --- a/tutorials/parallel_computing.ipynb +++ b/tutorials/parallel_computing.ipynb @@ -9,7 +9,159 @@ "author: Jing Zhang \n", "e-mail: zhangjingnm@hotmail.com \n", "date: 2024-09 \n", - "reference: http://www.idris.fr/eng/jean-zay/gpu/jean-zay-gpu-torch-multi-eng.html" + "reference: http://www.idris.fr/eng/jean-zay/gpu/jean-zay-gpu-torch-multi-eng.html \n", + "https://keras.io/guides/distributed_training_with_torch/" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Single GPU" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "implemention" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "import torch.nn as nn\n", + "import torch.optim as optim\n", + "from torchvision import datasets, transforms\n", + "from torch.utils.data import DataLoader\n", + "import timm\n", + "import os\n", + "import socket\n", + "\n", + "hostname = socket.gethostname()\n", + "num_gpus = torch.cuda.device_count()\n", + "num_epochs = 2\n", + "batch_size = 64\n", + "model_path = './best.pth'\n", + "\n", + "for i in range(num_gpus): print(f\"GPU {i}: {torch.cuda.get_device_name(i)}\")\n", + "print(f'{num_gpus} GPU in total on the node [{hostname}]\\n')\n", + "\n", + "# data augmentation and preprocessing\n", + "transform = transforms.Compose([\n", + " transforms.RandomHorizontalFlip(),\n", + " transforms.RandomCrop(32, padding=4),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.4914, 0.4822, 0.4465], std=[0.247, 0.243, 0.261])\n", + "])\n", + "transform_val = transforms.Compose([\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.4914, 0.4822, 0.4465], std=[0.247, 0.243, 0.261])\n", + "])\n", + "\n", + "# load CIFAR-10 dataset\n", + "train_dataset = datasets.CIFAR10(root='./data', train=True, download=False, transform=transform)\n", + "valid_dataset = datasets.CIFAR10(root='./data', train=False, download=False, transform=transform_val)\n", + "\n", + "train_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True)\n", + "valid_loader = DataLoader(valid_dataset, batch_size=batch_size, shuffle=False)\n", + "\n", + "def train_model(model, train_loader, valid_loader, num_epochs, optimizer, criterion):\n", + " best_acc = 0.0\n", + " for epoch in range(num_epochs):\n", + " model.train()\n", + " running_loss = 0.0\n", + " running_loss_count = 0\n", + " correct = 0\n", + " total = 0\n", + " \n", + " # train\n", + " for inputs, labels in train_loader:\n", + " inputs, labels = inputs.cuda(), labels.cuda()\n", + " # forward pass\n", + " outputs = model(inputs)\n", + " loss = criterion(outputs, labels)\n", + "\n", + " # backward propagation and optimization\n", + " optimizer.zero_grad()\n", + " loss.backward()\n", + " optimizer.step()\n", + "\n", + " running_loss += loss.item()\n", + " running_loss_count += 1\n", + " _, predicted = outputs.max(1)\n", + " total += labels.size(0)\n", + " correct += predicted.eq(labels).sum().item()\n", + "\n", + " epoch_loss = running_loss / running_loss_count\n", + " epoch_acc = 100. * correct / total\n", + "\n", + " # valid\n", + " model.eval()\n", + " correct_val = 0\n", + " total_val = 0\n", + " running_loss_val = 0.0\n", + " running_loss_count_val = 0\n", + " with torch.no_grad():\n", + " for inputs, labels in valid_loader:\n", + " inputs, labels = inputs.cuda(), labels.cuda()\n", + " outputs = model(inputs)\n", + " loss = criterion(outputs, labels)\n", + "\n", + " running_loss_val += loss.item()\n", + " running_loss_count_val += 1\n", + " _, predicted = outputs.max(1)\n", + " total_val += labels.size(0)\n", + " correct_val += predicted.eq(labels).sum().item()\n", + "\n", + " epoch_loss_val = running_loss_val / running_loss_count_val\n", + " epoch_acc_val = 100. * correct_val / total_val\n", + " print(f'Epoch {epoch+1}/{num_epochs}: Train Loss: {epoch_loss:.4f}, Train Acc: {epoch_acc:.2f}, Valid Loss: {epoch_loss_val:.4f}, Valid Acc: {epoch_acc_val:.2f}')\n", + " \n", + " # save model\n", + " if epoch_acc_val > best_acc:\n", + " print(f'Saving best model with validation accuracy: {epoch_acc_val:.2f}%')\n", + " torch.save(model.state_dict(), model_path)\n", + " best_acc = epoch_acc_val\n", + "\n", + "if __name__ == \"__main__\":\n", + " \n", + " model = timm.create_model('resnet18', pretrained=True, num_classes=10)\n", + " model = model.cuda()\n", + " optimizer = optim.AdamW(model.parameters(), lr=1e-3)\n", + " criterion = nn.CrossEntropyLoss()\n", + "\n", + " train_model(model, train_loader, valid_loader, num_epochs, optimizer, criterion)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "output\n", + "```\n", + "GPU 0: NVIDIA RTX A5000\n", + "1 GPU in total on the node [cn39]\n", + "\n", + "Epoch 1/2: Train Loss: 1.1341, Train Acc: 59.92, Valid Loss: 0.7287, Valid Acc: 75.31\n", + "Saving best model with validation accuracy: 75.31%\n", + "Epoch 2/2: Train Loss: 0.7425, Train Acc: 74.28, Valid Loss: 0.6481, Valid Acc: 77.84\n", + "Saving best model with validation accuracy: 77.84%\n", + " \n", + " \n", + "This program takes 0d:0h:1m:20s\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Multi-GPU on one node with SLURM" ] }, { @@ -19,6 +171,275 @@ "### Data parallelism" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "implemention 0:Data Parallelism \n", + "easy but not recommand. reference: https://pytorch.org/docs/stable/generated/torch.nn.DataParallel.html \n", + "https://torchhogehoge.hatenablog.com/entry/pytorch_DDP" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Multi GPU(DP)\n", + "import torch\n", + "import torchvision\n", + "import torch.nn as nn\n", + "\n", + "class NN(nn.Module):\n", + " def __init__(self):\n", + " super().__init__()\n", + " self.n = nn.Sequential(\n", + " nn.Flatten(),\n", + " nn.Linear(28*28, 128),\n", + " nn.ReLU(),\n", + " nn.Linear(128, 10)\n", + " )\n", + "\n", + " def forward(self, x):\n", + " return self.n(x)\n", + "data = torchvision.datasets.MNIST(root= \"data\", train=True, download=True, transform = torchvision.transforms.ToTensor())\n", + "data_loader = torch.utils.data.DataLoader(data, batch_size=64*torch.cuda.device_count(), shuffle=True, num_workers=2, pin_memory=True)\n", + "\n", + "model = NN().cuda()\n", + "model = torch.nn.DataParallel(model)\n", + "criterion = nn.CrossEntropyLoss()\n", + "optimizer = torch.optim.SGD(model.parameters(), lr=1e-3)\n", + "\n", + "for epoch in range(2):\n", + " total_loss = 0\n", + " for imgs, labels in data_loader:\n", + " predict = model(imgs.cuda())\n", + " loss = criterion(predict, labels.cuda())\n", + " total_loss+= loss.item()\n", + " optimizer.zero_grad()\n", + " loss.backward()\n", + " optimizer.step()\n", + "\n", + " print(f\"{epoch:3d}: {total_loss:.4f}\")\n", + "torch.save(model.module.state_dict(), 'model.pth')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "implemention 1:Distributed Data Parallelism \n", + "reference: https://pytorch.org/docs/stable/notes/ddp.html#ddp \n", + "https://www.youtube.com/watch?v=bwNtfxEDjGA \n", + "![DDP](../figures/DDP.png)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import torch\n", + "import torch.nn as nn\n", + "import torch.optim as optim\n", + "from torchvision import datasets, transforms\n", + "from torch.utils.data import DataLoader\n", + "import torch.utils.data.distributed as data_dist\n", + "import torch.distributed as dist\n", + "from torch.nn.parallel import DistributedDataParallel as DDP\n", + "import hostlist\n", + "import timm\n", + "import os\n", + "import socket\n", + "\n", + "hostname = socket.gethostname()\n", + "num_gpus = torch.cuda.device_count()\n", + "num_epochs = 2\n", + "batch_size = 64\n", + "model_path = './best.pth'\n", + "\n", + "for i in range(num_gpus): print(f\"GPU {i}: {torch.cuda.get_device_name(i)}\")\n", + "print(f'{num_gpus} GPU in total on the node [{hostname}]\\n')\n", + "\n", + "def setup_device(current_gpu_index, num_gpus):\n", + " # Device setup\n", + " os.environ['MASTER_ADDR'] = str(hostname) # or localhost\n", + " os.environ['MASTER_PORT'] = str(12345 + int(num_gpus)) # to avoid port conflict on the same node\n", + " gpu = torch.device(\"cuda:{}\".format(current_gpu_index))\n", + " dist.init_process_group(backend=\"nccl\", world_size=num_gpus, rank=current_gpu_index)\n", + " torch.cuda.set_device(gpu)\n", + "\n", + "def cleanup():\n", + " dist.destroy_process_group()\n", + "\n", + "def prepare_dataloader(dataset, current_gpu_index, num_gpus, batch_size):\n", + " sampler = data_dist.DistributedSampler(dataset, num_replicas=num_gpus, rank=current_gpu_index, shuffle=False)\n", + " dataloader = DataLoader(dataset, sampler=sampler, batch_size=batch_size, shuffle=False)\n", + " return dataloader\n", + "\n", + "def per_device_launch_fn(current_gpu_index, num_gpu):\n", + " # Setup the process groups\n", + " setup_device(current_gpu_index, num_gpu) \n", + " print(f'current_gpu_index: {current_gpu_index}')\n", + " \n", + " # data augmentation and preprocessing\n", + " transform = transforms.Compose([\n", + " transforms.RandomHorizontalFlip(), \n", + " transforms.RandomCrop(32, padding=4), \n", + " transforms.ToTensor(), \n", + " transforms.Normalize(mean=[0.4914, 0.4822, 0.4465], std=[0.247, 0.243, 0.261]) \n", + " ])\n", + " transform_val = transforms.Compose([\n", + " transforms.ToTensor(), \n", + " transforms.Normalize(mean=[0.4914, 0.4822, 0.4465], std=[0.247, 0.243, 0.261]) \n", + " ])\n", + " # load CIFAR-10 dataset\n", + " train_dataset = datasets.CIFAR10(root='./data', train=True, download=False, transform=transform)\n", + " valid_dataset = datasets.CIFAR10(root='./data', train=False, download=False, transform=transform_val)\n", + "\n", + " # prepare the dataloader\n", + " train_loader = prepare_dataloader(train_dataset, current_gpu_index, num_gpu, batch_size)\n", + " valid_loader = prepare_dataloader(valid_dataset, current_gpu_index, num_gpu, batch_size)\n", + "\n", + " # Put model on device\n", + " model = timm.create_model('resnet18', pretrained=True, num_classes=10, in_chans=3)\n", + " optimizer = torch.optim.AdamW(model.parameters(), lr=1e-3)\n", + " loss_fn = nn.CrossEntropyLoss()\n", + " \n", + " # Put model on device\n", + " model = model.to(current_gpu_index)\n", + " ddp_model = DDP(model, device_ids=[current_gpu_index], output_device=current_gpu_index) \n", + " \n", + " train_model(ddp_model, train_loader, valid_loader, num_epochs, optimizer, loss_fn)\n", + " cleanup()\n", + "\n", + "def train_model(model, train_loader, valid_loader, num_epochs, optimizer, criterion):\n", + " best_acc = 0.0\n", + " for epoch in range(num_epochs):\n", + " model.train()\n", + " running_loss = 0.0\n", + " running_loss_count = 0\n", + " correct = 0\n", + " total = 0\n", + " # train\n", + " for inputs, labels in train_loader:\n", + " inputs, labels = inputs.cuda(non_blocking=True), labels.cuda(non_blocking=True)\n", + "\n", + " # forward pass\n", + " outputs = model(inputs)\n", + " loss = criterion(outputs, labels)\n", + "\n", + " # backword propagation and optmization\n", + " optimizer.zero_grad()\n", + " loss.backward()\n", + " optimizer.step()\n", + "\n", + " # calculate loss and accuracy\n", + " running_loss += loss.item() # average loss of batch_size\n", + " running_loss_count += 1\n", + " _, predicted = outputs.max(1) # return max value and its index, outputs:(batch_size, num_classes)\n", + " total += labels.size(0) # (batch_size,)\n", + " correct += predicted.eq(labels).sum().item() # .item() Convert a tensor to a scalar\n", + "\n", + " epoch_loss = running_loss / running_loss_count\n", + " epoch_acc = 100. * correct / total\n", + " # valid\n", + " model.eval()\n", + " running_loss_val = 0.0\n", + " running_loss_count_val = 0\n", + " correct_val = 0\n", + " total_val = 0\n", + " with torch.no_grad():\n", + " for inputs, labels in valid_loader:\n", + " inputs, labels = inputs.cuda(non_blocking=True), labels.cuda(non_blocking=True)\n", + "\n", + " outputs = model(inputs)\n", + " loss = criterion(outputs, labels)\n", + "\n", + " running_loss_val += loss.item()\n", + " running_loss_count_val += 1\n", + " _, predicted = outputs.max(1)\n", + " total_val += labels.size(0)\n", + " correct_val += predicted.eq(labels).sum().item()\n", + "\n", + " epoch_loss_val = running_loss_val / running_loss_count_val\n", + " epoch_acc_val = 100. * correct_val / total_val\n", + " print(f'Epoch {epoch+1}/{num_epochs}: Train Loss: {epoch_loss:.4f}, Train Acc: {epoch_acc:.2f}, Valid Loss: {epoch_loss_val:.4f}, Valid Acc: {epoch_acc_val:.2f}')\n", + " # save model at rank=0\n", + " if dist.get_rank() == 0:\n", + " if epoch_acc_val > best_acc:\n", + " print(f'Saving best model with validation accuracy: {epoch_acc_val:.2f}%')\n", + " torch.save(model.state_dict(), model_path)\n", + " best_acc = epoch_acc_val\n", + "\n", + "if __name__ == \"__main__\":\n", + " torch.multiprocessing.start_processes(\n", + " per_device_launch_fn,\n", + " args=(num_gpus,),\n", + " nprocs=num_gpus,\n", + " join=True,\n", + " start_method=\"spawn\",\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "output\n", + "```\n", + "GPU 0: NVIDIA RTX A5000\n", + "GPU 1: NVIDIA RTX A5000\n", + "GPU 2: NVIDIA RTX A5000\n", + "GPU 3: NVIDIA RTX A5000\n", + "4 GPU in total on the node [cn39]\n", + "\n", + "GPU 0: NVIDIA RTX A5000\n", + "GPU 1: NVIDIA RTX A5000\n", + "GPU 2: NVIDIA RTX A5000\n", + "GPU 3: NVIDIA RTX A5000\n", + "4 GPU in total on the node [cn39]\n", + "\n", + "current_gpu_index: 2\n", + "Epoch 1/2: Train Loss: 1.3159, Train Acc: 54.38, Valid Loss: 0.8592, Valid Acc: 69.44\n", + "Epoch 2/2: Train Loss: 0.8251, Train Acc: 71.74, Valid Loss: 0.6585, Valid Acc: 76.80\n", + "GPU 0: NVIDIA RTX A5000\n", + "GPU 1: NVIDIA RTX A5000\n", + "GPU 2: NVIDIA RTX A5000\n", + "GPU 3: NVIDIA RTX A5000\n", + "4 GPU in total on the node [cn39]\n", + "\n", + "current_gpu_index: 1\n", + "Epoch 1/2: Train Loss: 1.3193, Train Acc: 54.21, Valid Loss: 0.8807, Valid Acc: 69.68\n", + "Epoch 2/2: Train Loss: 0.8282, Train Acc: 71.26, Valid Loss: 0.6728, Valid Acc: 76.80\n", + "GPU 0: NVIDIA RTX A5000\n", + "GPU 1: NVIDIA RTX A5000\n", + "GPU 2: NVIDIA RTX A5000\n", + "GPU 3: NVIDIA RTX A5000\n", + "4 GPU in total on the node [cn39]\n", + "\n", + "current_gpu_index: 0\n", + "Epoch 1/2: Train Loss: 1.3200, Train Acc: 53.60, Valid Loss: 0.8733, Valid Acc: 69.96\n", + "Saving best model with validation accuracy: 69.96%\n", + "Epoch 2/2: Train Loss: 0.8254, Train Acc: 71.49, Valid Loss: 0.6761, Valid Acc: 77.56\n", + "Saving best model with validation accuracy: 77.56%\n", + "GPU 0: NVIDIA RTX A5000\n", + "GPU 1: NVIDIA RTX A5000\n", + "GPU 2: NVIDIA RTX A5000\n", + "GPU 3: NVIDIA RTX A5000\n", + "4 GPU in total on the node [cn39]\n", + "\n", + "current_gpu_index: 3\n", + "Epoch 1/2: Train Loss: 1.3211, Train Acc: 54.14, Valid Loss: 0.8391, Valid Acc: 70.36\n", + "Epoch 2/2: Train Loss: 0.8263, Train Acc: 71.31, Valid Loss: 0.6591, Valid Acc: 77.00\n", + " \n", + " \n", + "This program takes 0d:0h:0m:51s\n", + "```" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -30,140 +451,297 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Multi-process configuration with SLURM" + "implemention" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Files already downloaded and verified\n", - "Files already downloaded and verified\n", - "Epoch 1/10: Train Loss: 1.1410, Train Acc: 60.10, Test Loss: 0.8326, Test Acc: 71.25%\n", - "Epoch 2/10: Train Loss: 0.7750, Train Acc: 73.15, Test Loss: 0.7030, Test Acc: 75.96%\n", - "Epoch 3/10: Train Loss: 0.6593, Train Acc: 76.96, Test Loss: 0.6416, Test Acc: 77.75%\n", - "Epoch 4/10: Train Loss: 0.5870, Train Acc: 79.59, Test Loss: 0.5958, Test Acc: 79.26%\n", - "Epoch 5/10: Train Loss: 0.5420, Train Acc: 81.16, Test Loss: 0.5572, Test Acc: 80.90%\n", - "Epoch 6/10: Train Loss: 0.4965, Train Acc: 82.73, Test Loss: 0.5543, Test Acc: 81.10%\n", - "Epoch 7/10: Train Loss: 0.4654, Train Acc: 83.87, Test Loss: 0.5373, Test Acc: 81.57%\n", - "Epoch 8/10: Train Loss: 0.4363, Train Acc: 84.82, Test Loss: 0.5188, Test Acc: 82.19%\n", - "Epoch 9/10: Train Loss: 0.4177, Train Acc: 85.38, Test Loss: 0.5282, Test Acc: 81.94%\n", - "Epoch 10/10: Train Loss: 0.3896, Train Acc: 86.30, Test Loss: 0.5135, Test Acc: 82.77%\n" - ] - } - ], + "outputs": [], "source": [ "import torch\n", "import torch.nn as nn\n", "import torch.optim as optim\n", - "from torchvision import datasets, transforms, models\n", + "from torchvision import datasets, transforms\n", "from torch.utils.data import DataLoader\n", + "import timm\n", + "import os\n", + "import socket\n", "\n", - "# data augmentation and preprocessing\n", - "transform = transforms.Compose([\n", - " transforms.RandomHorizontalFlip(), \n", - " transforms.RandomCrop(32, padding=4), \n", - " transforms.ToTensor(), \n", - " transforms.Normalize(mean=[0.4914, 0.4822, 0.4465], std=[0.247, 0.243, 0.261]) \n", - "])\n", + "hostname = socket.gethostname()\n", + "num_gpus = torch.cuda.device_count()\n", + "num_epochs = 2\n", + "batch_size = 64\n", + "model_path = './best.pth'\n", "\n", - "# load CIFAR-10 dataset\n", - "train_dataset = datasets.CIFAR10(root='./data', train=True, download=True, transform=transform)\n", - "test_dataset = datasets.CIFAR10(root='./data', train=False, download=True, transform=transform)\n", + "for i in range(num_gpus): print(f\"GPU {i}: {torch.cuda.get_device_name(i)}\")\n", + "print(f'{num_gpus} GPU in total on the node [{hostname}]\\n')\n", "\n", - "train_loader = DataLoader(train_dataset, batch_size=64, shuffle=True, num_workers=2)\n", - "test_loader = DataLoader(test_dataset, batch_size=64, shuffle=False, num_workers=2)\n", + "model = timm.create_model('resnet18', pretrained=True, num_classes=10)\n", "\n", - "# load pretrained ResNet18 model\n", - "model = models.resnet18(weights='ResNet18_Weights.DEFAULT')\n", + "# split model mannualy into different parts (GPU)\n", + "class SplitResNet18(nn.Module):\n", + " def __init__(self):\n", + " super(SplitResNet18, self).__init__()\n", + " # GPU 0\n", + " self.conv1_to_maxpool = nn.Sequential(model.conv1, model.bn1, model.act1, model.maxpool).to('cuda:0')\n", + " # GPU 1 \n", + " self.layer1_to_layer2 = nn.Sequential(model.layer1, model.layer2).to('cuda:1')\n", + " # GPU 2\n", + " self.layer3_to_layer4 = nn.Sequential(model.layer3, model.layer4).to('cuda:2')\n", + " # GPU 3\n", + " self.global_pool_to_fc = nn.Sequential(model.global_pool, model.fc).to('cuda:3')\n", "\n", - "# modify last fully connected layer, to adapt for CIFAR-10\n", - "num_ftrs = model.fc.in_features\n", - "model.fc = nn.Linear(num_ftrs, 10) # 10 classes in CIFAR-10\n", + " def forward(self, x):\n", + " # input to GPU 0 \n", + " x = x.to('cuda:0')\n", + " x = self.conv1_to_maxpool(x)\n", + " x = x.to('cuda:1')\n", + " x = self.layer1_to_layer2(x)\n", + " x = x.to('cuda:2')\n", + " x = self.layer3_to_layer4(x)\n", + " x = x.to('cuda:3')\n", + " x = self.global_pool_to_fc(x)\n", + " \n", + " return x\n", "\n", - "# move model to GPU\n", - "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", - "model = model.to(device)\n", + "# data augmentation and preprocessing\n", + "transform = transforms.Compose([\n", + " transforms.RandomHorizontalFlip(),\n", + " transforms.RandomCrop(32, padding=4),\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.4914, 0.4822, 0.4465], std=[0.247, 0.243, 0.261])\n", + "])\n", + "transform_val = transforms.Compose([\n", + " transforms.ToTensor(),\n", + " transforms.Normalize(mean=[0.4914, 0.4822, 0.4465], std=[0.247, 0.243, 0.261])\n", + "])\n", "\n", - "criterion = nn.CrossEntropyLoss()\n", - "optimizer = optim.AdamW(model.parameters(), lr=0.0001)\n", - "\n", - "def train(model, train_loader, criterion, optimizer, device):\n", - " model.train()\n", - " running_loss = 0.0\n", - " correct = 0\n", - " total = 0\n", - "\n", - " for inputs, labels in train_loader:\n", - " inputs, labels = inputs.to(device), labels.to(device)\n", - "\n", - " # forward pass\n", - " outputs = model(inputs)\n", - " loss = criterion(outputs, labels)\n", - "\n", - " # backword propagation and optmization\n", - " optimizer.zero_grad()\n", - " loss.backward()\n", - " optimizer.step()\n", - "\n", - " # calculate loss and accuracy\n", - " running_loss += loss.item() * inputs.size(0)\n", - " _, predicted = outputs.max(1) # get predicted class\n", - " total += labels.size(0)\n", - " correct += predicted.eq(labels).sum().item()\n", - "\n", - " epoch_loss = running_loss / len(train_loader.dataset)\n", - " epoch_acc = 100. * correct / total\n", - " return epoch_loss, epoch_acc\n", - "\n", - "def evaluate(model, test_loader, criterion, device):\n", - " model.eval()\n", - " running_loss = 0.0\n", - " correct = 0\n", - " total = 0\n", - "\n", - " with torch.no_grad():\n", - " for inputs, labels in test_loader:\n", - " inputs, labels = inputs.to(device), labels.to(device)\n", + "# load CIFAR-10 dataset\n", + "train_dataset = datasets.CIFAR10(root='./data', train=True, download=False, transform=transform)\n", + "valid_dataset = datasets.CIFAR10(root='./data', train=False, download=False, transform=transform_val)\n", "\n", + "train_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True)\n", + "valid_loader = DataLoader(valid_dataset, batch_size=batch_size, shuffle=False)\n", + "\n", + "def train_model(model, train_loader, valid_loader, num_epochs, optimizer, criterion):\n", + " best_acc = 0.0\n", + " for epoch in range(num_epochs):\n", + " model.train()\n", + " running_loss = 0.0\n", + " running_loss_count = 0\n", + " correct = 0\n", + " total = 0\n", + " \n", + " device = next(model.parameters()).device\n", + " print(f'current device: {device}')\n", + " # train\n", + " for inputs, labels in train_loader:\n", + " inputs, labels = inputs.to(device, non_blocking=True), labels.to(device, non_blocking=True)\n", + " # forward pass\n", " outputs = model(inputs)\n", + " outputs = outputs.to(device)\n", " loss = criterion(outputs, labels)\n", "\n", - " running_loss += loss.item() * inputs.size(0)\n", + " # backward propagation and optimization\n", + " optimizer.zero_grad()\n", + " loss.backward()\n", + " optimizer.step()\n", + "\n", + " running_loss += loss.item()\n", + " running_loss_count += 1\n", " _, predicted = outputs.max(1)\n", " total += labels.size(0)\n", " correct += predicted.eq(labels).sum().item()\n", "\n", - " epoch_loss = running_loss / len(test_loader.dataset)\n", - " epoch_acc = 100. * correct / total\n", - " return epoch_loss, epoch_acc\n", + " epoch_loss = running_loss / running_loss_count\n", + " epoch_acc = 100. * correct / total\n", + "\n", + " # valid\n", + " model.eval()\n", + " correct_val = 0\n", + " total_val = 0\n", + " running_loss_val = 0.0\n", + " running_loss_count_val = 0\n", + " with torch.no_grad():\n", + " for inputs, labels in valid_loader:\n", + " inputs, labels = inputs.to(device, non_blocking=True), labels.to(device, non_blocking=True)\n", + " outputs = model(inputs)\n", + " outputs = outputs.to(device)\n", + " loss = criterion(outputs, labels)\n", "\n", - "num_epochs = 10\n", + " running_loss_val += loss.item()\n", + " running_loss_count_val += 1\n", + " _, predicted = outputs.max(1)\n", + " total_val += labels.size(0)\n", + " correct_val += predicted.eq(labels).sum().item()\n", "\n", - "for epoch in range(num_epochs):\n", - " train_loss, train_acc = train(model, train_loader, criterion, optimizer, device)\n", - " test_loss, test_acc = evaluate(model, test_loader, criterion, device)\n", + " epoch_loss_val = running_loss_val / running_loss_count_val\n", + " epoch_acc_val = 100. * correct_val / total_val\n", + " print(f'Epoch {epoch+1}/{num_epochs}: Train Loss: {epoch_loss:.4f}, Train Acc: {epoch_acc:.2f}, Valid Loss: {epoch_loss_val:.4f}, Valid Acc: {epoch_acc_val:.2f}')\n", + " \n", + " # save model\n", + " if epoch_acc_val > best_acc:\n", + " print(f'Saving best model with validation accuracy: {epoch_acc_val:.2f}%')\n", + " torch.save(model.state_dict(), model_path)\n", + " best_acc = epoch_acc_val\n", "\n", - " print(f'Epoch {epoch+1}/{num_epochs}: Train Loss: {train_loss:.4f}, Train Acc: {train_acc:.2f}, Test Loss: {test_loss:.4f}, Test Acc: {test_acc:.2f}%')" + "if __name__ == \"__main__\":\n", + " \n", + " model = SplitResNet18()\n", + " optimizer = optim.AdamW(model.parameters(), lr=1e-3)\n", + " criterion = nn.CrossEntropyLoss()\n", + "\n", + " train_model(model, train_loader, valid_loader, num_epochs, optimizer, criterion)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "output\n", + "```\n", + "GPU 0: NVIDIA RTX A5000\n", + "GPU 1: NVIDIA RTX A5000\n", + "GPU 2: NVIDIA RTX A5000\n", + "GPU 3: NVIDIA RTX A5000\n", + "4 GPU in total on the node [cn39]\n", + "\n", + "current device: cuda:0\n", + "Epoch 1/2: Train Loss: 1.1441, Train Acc: 60.03, Valid Loss: 0.7721, Valid Acc: 73.44\n", + "Saving best model with validation accuracy: 73.44%\n", + "current device: cuda:0\n", + "Epoch 2/2: Train Loss: 0.7518, Train Acc: 74.11, Valid Loss: 0.6648, Valid Acc: 76.91\n", + "Saving best model with validation accuracy: 76.91%\n", + " \n", + " \n", + "This program takes 0d:0h:1m:20s\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### SLURM information\n", + "\n", + "```\n", + "$ sinfo\n", + "PARTITION AVAIL TIMELIMIT NODES STATE NODELIST\n", + "GPU11Go up 2-00:00:00 13 mix cn[01-07,09-11,15,17,41]\n", + "GPU11Go up 2-00:00:00 1 idle cn16\n", + "GPU24Go up 1-00:00:00 9 idle cn[18,22,24-25,35,38-40,53]\n", + "GPU48Go up 1-00:00:00 1 down* cn60\n", + "GPU48Go up 1-00:00:00 3 mix cn[37,48,57]\n", + "GPU48Go up 1-00:00:00 3 idle cn[20,42,52]\n", + "GPU96Go up 1-00:00:00 3 mix cn[51,58-59]\n", + "GPU96Go up 1-00:00:00 1 alloc cn50\n", + "Tests-GPU24Go up 5:00 1 down* cn54\n", + "WS-CPU1* up 4-00:00:00 3 down* cn[32-33,46]\n", + "WS-CPU1* up 4-00:00:00 7 mix cn[08,12-14,19,26,34]\n", + "WS-CPU1* up 4-00:00:00 6 alloc cn[21,27-29,31,36]\n", + "WS-CPU2 up 4-00:00:00 12 mix cn[01-07,09-11,15,17]\n", + "Serveurs-CPU up 10-00:00:0 8 mix cn[30,43-45,47,49,55-56]\n", + "```\n", + "\n", + "```\n", + "#!/bin/bash \n", + "#SBATCH --partition=GPU24Go # partition name\n", + "##SBATCH --nodes=2 # total number of nodes\n", + "#SBATCH --nodelist=cn39 # Or specify a specific node check via sinfo\n", + "#SBATCH --ntasks-per-node=1 # number of tasks per node, if >1 will repeat task\n", + "#SBATCH --gres=gpu:4 # number of GPUs reserved per node\n", + "#SBATCH --cpus-per-task=4 # number of CPUs per task\n", + "##SBATCH --mem-per-cpu=1500MB # memory of per CPU\n", + "#SBATCH -J multigpu # job name\n", + "#SBATCH --out=%J/result.txt # log file\n", + "#SBATCH --error=%J/error.txt # log file\n", + "##SBATCH --array=0-1 # array 2 jobs\n", + "#SBATCH --array=1 # array 1 job\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "SLURM in python" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "hostname = socket.gethostname()\n", + "num_gpus = torch.cuda.device_count()\n", + "print(f'{num_gpus} GPU in total on this node {hostname}')\n", + "num_epochs = 2\n", + "batch_size = 64\n", + "\n", + "for i in range(num_gpus):\n", + " print(f\"GPU {i}: {torch.cuda.get_device_name(i)}\")\n", + "\n", + "# get SLURM variables\n", + "global_rank = int(os.environ['SLURM_PROCID']) # The global ranking of the current process among all processes\n", + "local_rank = int(os.environ['SLURM_LOCALID']) # The local rank of the current process on its node\n", + "number_tasks = int(os.environ['SLURM_NTASKS']) # The total number of tasks in the job\n", + "cpus_per_task = int(os.environ['SLURM_CPUS_PER_TASK']) # The number of CPUs allocated to each task\n", + "nodelist = os.environ['SLURM_JOB_NODELIST'] # the list of nodes\n", + "nodelist = hostlist.expand_hostlist(os.environ['SLURM_JOB_NODELIST']) # expand nodelist\n", + "gpu_ids = os.environ['SLURM_STEP_GPUS'].split(\",\") # The list of GPU IDs allocated to the job\n", + "\n", + "print(f' global_rank: {global_rank}')\n", + "print(f' local_rank: {local_rank}')\n", + "print(f' number_tasks: {number_tasks}')\n", + "print(f'cpus_per_task: {cpus_per_task}')\n", + "print(f' nodelist: {nodelist}')\n", + "print(f' gpu_ids: {gpu_ids}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "output\n", + "```\n", + "4 GPU in total on this node cn39\n", + "GPU 0: NVIDIA RTX A5000\n", + "GPU 1: NVIDIA RTX A5000\n", + "GPU 2: NVIDIA RTX A5000\n", + "GPU 3: NVIDIA RTX A5000\n", + " global_rank: 0\n", + " local_rank: 0\n", + " number_tasks: 1\n", + "cpus_per_task: 4\n", + " nodelist: ['cn39']\n", + " gpu_ids: ['0', '1', '2', '3']\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### GPU information" + ] + }, + { + "cell_type": "code", + "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "1 GPUs in total on this machine\n", + "1 GPU in total on this machine\n", "GPU 0: Quadro RTX 5000\n", - "Node name (hostname): DESKTOP-7GS0DEP\n" + "Node name (hostname): DESKTOP-7GS0DEP\n", + "PyTorch version: 2.4.1+cu124\n", + "CUDA version: 12.4\n" ] } ], @@ -172,7 +750,7 @@ "import torch \n", "\n", "num_gpus = torch.cuda.device_count()\n", - "print(f'{num_gpus} GPUs in total on this machine')\n", + "print(f'{num_gpus} GPU in total on this machine')\n", "\n", "for i in range(num_gpus):\n", " print(f\"GPU {i}: {torch.cuda.get_device_name(i)}\")\n", @@ -180,7 +758,9 @@ "import socket\n", "hostname = socket.gethostname()\n", "print(f\"Node name (hostname): {hostname}\")\n", - "\n" + "\n", + "print('PyTorch version:', torch.__version__) # PyTorch version\n", + "print('CUDA version:', torch.version.cuda) # CUDA version" ] }, { @@ -215,7 +795,14 @@ "print(f\"Node name (hostname): {hostname}\")\n", "\n", "print('PyTorch version:', torch.__version__) # PyTorch version\n", - "print('CUDA version:', torch.version.cuda) # CUDA version" + "print('CUDA version:', torch.version.cuda) # CUDA version" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Multi-GPU on multi nodes with SLURM (todo)" ] } ], @@ -235,7 +822,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.5" + "version": "3.11.6" }, "orig_nbformat": 4, "vscode": {