FROM nvidia/cuda:11.5.0-devel-ubuntu20.04


RUN apt-get update -yqq && \
DEBIAN_FRONTEND=noninteractive \
TZ=Etc/UTC apt-get install -yqq tzdata \
software-properties-common \
apt-utils build-essential \
wget git curl cmake \
pkg-config tree \
python3 python3-dev python3-pip


RUN (echo "fp_type: float" \
&&   echo "num_elements: 100000" \
&&   echo "num_repeats: 200") \
> /test-config.yaml


ARG GPU_ARCH=sm_75


ADD gemmforge /gemmforge 
ADD chainforge /chainforge


RUN cd /chainforge && \
pip3 install -e . && \
cd benchmarks && \
pip3 install -r ./requirements.txt && \
python3 ./glang.py -c /test-config.yaml \
-a ${GPU_ARCH} -b cuda \
-i ./programs/matrix-ordering.cf && \
mkdir -p build && cd build && \
cmake .. -DCMAKE_BUILD_TYPE=Release && \
make -j $(nproc) && \
ln -s $(pwd)/bench /chainforge-bench


RUN  cd /gemmforge && pip3 install -e . && \
git submodule update --init --recursive && \
cd benchmarks && \
pip3 install -r ./requirements.txt && \
cd ./gemm-chain && \
python3 ./generate.py -c /test-config.yaml \
-a ${GPU_ARCH} -b cuda && \
mkdir -p build && cd build && \
cmake .. -DCMAKE_BUILD_TYPE=Release && \
make -j $(nproc) && \
ln -s $(pwd)/gemm-chain /gemmforge-bench

