Skip to content

Efficiently Setting Up Dependencies for Karpathy's llm.c on Kaggle: Seeking Guidance #1416

Open
@dewijones92

Description

@dewijones92

Hello Kaggle! 😊

I wasn't sure where the best place to ask something like this was, so I hope it's okay to open this GitHub issue.

Objective

I want to compile and run Andrej Karpathy’s code from this repository.

Requirements

To achieve this, I need to install the following dependencies:

sudo apt-get -y install nvidia-cuda-toolkit
sudo apt install libnccl2 libnccl-dev
sudo apt-get update
sudo apt-get install libnvtoolsext1
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install nvidia-cuda-toolkit  
sudo apt-get -y install libcudnn9-dev-cuda-12
sudo apt install libnccl2 libnccl-dev
pip install tiktoken  # This is used to tokenize the data to be passed into llm.c

Additionally, the instructions specify that I need to clone this repository into my home directory.

Dockerfile Concerns

I have looked into adding the above dependencies into the Dockerfile.tmpl, but I found the following lines in there:

# Make sure we are on the right version of CUDA
RUN update-alternatives --set cuda /usr/local/cuda-$CUDA_MAJOR_VERSION.$CUDA_MINOR_VERSION
# NVIDIA binaries from the host are mounted to /opt/bin.
ENV PATH=/opt/bin:${PATH}

It seems like the convention is NOT to use apt-get install here. Am I able to install the above dependencies (e.g., nvidia-cuda-toolkit, etc.) in this Dockerfile? What are your thoughts?

Current Issue

At the moment, I have to install all the dependencies each time I start up the notebook, which is incredibly slow and tedious, as you can imagine.

Compilation Method

I am using a method similar to this notebook to compile and run Karpathy’s code.

Thanks!

Thank you so much for Kaggle! 😄😄

Metadata

Metadata

Assignees

Labels

new-packageRequests for installing new packages

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions