nanoGPT
https://github.com/karpathy/nanoGPT
Prepare
Program
Get the sources:
$ git clone git@github.com:karpathy/nanoGPT.git
Dependencies
To support old Tesla P4 (sm_61), we need old Nvidia driver:
$ curl -LO https://developer.download.nvidia.com/compute/cuda/12.6.0/local_installers/cuda_12.6.0_560.28.03_linux.run
$ chmod +x cuda_12.6.0_560.28.03_linux.run
$ sudo ./cuda_12.6.0_560.28.03_linux.run
It is based on pytorch. Install the requirements (adapt to the CUDA version):
$ pip install torch==2.6.0 --index-url https://download.pytorch.org/whl/cu126
Other dependencies:
$ pip install numpy transformers datasets tiktoken wandb tqdm
Check in python console:
$ python
Python 3.12.5 (main, Jul 21 2026, 14:33:50) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.cuda.is_available()
True
>>> torch.cuda.get_arch_list()
['sm_50', 'sm_60', 'sm_70', 'sm_75', 'sm_80', 'sm_86', 'sm_90']
Dataset
$ python data/shakespeare_char/prepare.py
length of dataset in characters: 1,115,394
all the unique characters:
!$&',-.3:;?ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
vocab size: 65
train has 1,003,854 tokens
val has 111,540 tokens
Training
$ python train.py config/train_shakespeare_char.py
Overriding config with config/train_shakespeare_char.py:
⋮
If you run the above command with the too old Tesla P4, an error will be encoutered:
RuntimeError: Found Tesla P4 which is too old to be supported by the triton GPU compiler, which is used as the backend. Triton only supports devices of CUDA Capability >= 7.0, but your device is of CUDA capability 6.1
So we need to edit the config file mentioned above, and set:
compile = False
Which disables model compiling. Then run it again.