Note about MPS in ch06 and ch07 (#325)

This commit is contained in:
Sebastian Raschka 2024-08-19 08:11:33 -05:00 committed by GitHub
parent 8ef5022511
commit c443035d56
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 26 additions and 7 deletions

View File

@ -1687,6 +1687,21 @@
],
"source": [
"device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
"\n",
"# Note:\n",
"# Uncommenting the following lines will allow the code to run on Apple Silicon chips, if applicable,\n",
"# which is approximately 2x faster than on an Apple CPU (as measured on an M3 MacBook Air).\n",
"# As of this writing, in PyTorch 2.4, the results obtained via CPU and MPS were identical.\n",
"# However, in earlier versions of PyTorch, you may observe different results when using MPS.\n",
"\n",
"#if torch.cuda.is_available():\n",
"# device = torch.device(\"cuda\")\n",
"#elif torch.backends.mps.is_available():\n",
"# device = torch.device(\"mps\")\n",
"#else:\n",
"# device = torch.device(\"cpu\")\n",
"#print(f\"Running on {device} device.\")\n",
"\n",
"model.to(device) # no assignment model = model.to(device) necessary for nn.Module classes\n",
"\n",
"torch.manual_seed(123) # For reproducibility due to the shuffling in the training data loader\n",

View File

@ -1125,13 +1125,17 @@
"source": [
"device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
"\n",
"# If you have a Mac with Apple Silicon chip, you can uncomment the next lines of code\n",
"# to train the model on the Mac's GPU cores. However, as of this writing, this results in\n",
"# larger numerical deviations from the results shown in this chapter, because Apple Silicon\n",
"# support in PyTorch is still experimental\n",
"# Note:\n",
"# Uncommenting the following lines will allow the code to run on Apple Silicon chips, if applicable,\n",
"# which is much faster than on an Apple CPU (as measured on an M3 MacBook Air).\n",
"# However, the resulting loss values may be slightly different.\n",
"\n",
"# if torch.backends.mps.is_available():\n",
"# device = torch.device(\"mps\")\n",
"#if torch.cuda.is_available():\n",
"# device = torch.device(\"cuda\")\n",
"#elif torch.backends.mps.is_available():\n",
"# device = torch.device(\"mps\")\n",
"#else:\n",
"# device = torch.device(\"cpu\")\n",
"\n",
"print(\"Device:\", device)"
]
@ -2762,7 +2766,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.6"
"version": "3.11.4"
}
},
"nbformat": 4,