xref: /aosp_15_r20/external/pytorch/docker.Makefile (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1*da0073e9SAndroid Build Coastguard WorkerDOCKER_REGISTRY          ?= docker.io
2*da0073e9SAndroid Build Coastguard WorkerDOCKER_ORG               ?= $(shell docker info 2>/dev/null | sed '/Username:/!d;s/.* //')
3*da0073e9SAndroid Build Coastguard WorkerDOCKER_IMAGE             ?= pytorch
4*da0073e9SAndroid Build Coastguard WorkerDOCKER_FULL_NAME          = $(DOCKER_REGISTRY)/$(DOCKER_ORG)/$(DOCKER_IMAGE)
5*da0073e9SAndroid Build Coastguard Worker
6*da0073e9SAndroid Build Coastguard Workerifeq ("$(DOCKER_ORG)","")
7*da0073e9SAndroid Build Coastguard Worker$(warning WARNING: No docker user found using results from whoami)
8*da0073e9SAndroid Build Coastguard WorkerDOCKER_ORG                = $(shell whoami)
9*da0073e9SAndroid Build Coastguard Workerendif
10*da0073e9SAndroid Build Coastguard Worker
11*da0073e9SAndroid Build Coastguard WorkerCUDA_VERSION_SHORT       ?= 12.1
12*da0073e9SAndroid Build Coastguard WorkerCUDA_VERSION             ?= 12.1.1
13*da0073e9SAndroid Build Coastguard WorkerCUDNN_VERSION            ?= 9
14*da0073e9SAndroid Build Coastguard WorkerBASE_RUNTIME              = ubuntu:22.04
15*da0073e9SAndroid Build Coastguard WorkerBASE_DEVEL                = nvidia/cuda:$(CUDA_VERSION)-devel-ubuntu22.04
16*da0073e9SAndroid Build Coastguard WorkerCMAKE_VARS               ?=
17*da0073e9SAndroid Build Coastguard Worker
18*da0073e9SAndroid Build Coastguard Worker# The conda channel to use to install cudatoolkit
19*da0073e9SAndroid Build Coastguard WorkerCUDA_CHANNEL              = nvidia
20*da0073e9SAndroid Build Coastguard Worker# The conda channel to use to install pytorch / torchvision
21*da0073e9SAndroid Build Coastguard WorkerINSTALL_CHANNEL          ?= whl
22*da0073e9SAndroid Build Coastguard Worker
23*da0073e9SAndroid Build Coastguard WorkerCUDA_PATH                ?= cpu
24*da0073e9SAndroid Build Coastguard Workerifneq ("$(CUDA_VERSION_SHORT)","cpu")
25*da0073e9SAndroid Build Coastguard WorkerCUDA_PATH                = cu$(subst .,,$(CUDA_VERSION_SHORT))
26*da0073e9SAndroid Build Coastguard Workerendif
27*da0073e9SAndroid Build Coastguard Worker
28*da0073e9SAndroid Build Coastguard WorkerPYTHON_VERSION           ?= 3.11
29*da0073e9SAndroid Build Coastguard Worker# Match versions that start with v followed by a number, to avoid matching with tags like ciflow
30*da0073e9SAndroid Build Coastguard WorkerPYTORCH_VERSION          ?= $(shell git describe --tags --always --match "v[1-9]*.*")
31*da0073e9SAndroid Build Coastguard Worker# Can be either official / dev
32*da0073e9SAndroid Build Coastguard WorkerBUILD_TYPE               ?= dev
33*da0073e9SAndroid Build Coastguard WorkerBUILD_PROGRESS           ?= auto
34*da0073e9SAndroid Build Coastguard Worker# Intentionally left blank
35*da0073e9SAndroid Build Coastguard WorkerTRITON_VERSION           ?=
36*da0073e9SAndroid Build Coastguard WorkerBUILD_ARGS                = --build-arg BASE_IMAGE=$(BASE_IMAGE) \
37*da0073e9SAndroid Build Coastguard Worker							--build-arg PYTHON_VERSION=$(PYTHON_VERSION) \
38*da0073e9SAndroid Build Coastguard Worker							--build-arg CUDA_VERSION=$(CUDA_VERSION) \
39*da0073e9SAndroid Build Coastguard Worker							--build-arg CUDA_PATH=$(CUDA_PATH) \
40*da0073e9SAndroid Build Coastguard Worker							--build-arg PYTORCH_VERSION=$(PYTORCH_VERSION) \
41*da0073e9SAndroid Build Coastguard Worker							--build-arg INSTALL_CHANNEL=$(INSTALL_CHANNEL) \
42*da0073e9SAndroid Build Coastguard Worker							--build-arg TRITON_VERSION=$(TRITON_VERSION) \
43*da0073e9SAndroid Build Coastguard Worker							--build-arg CMAKE_VARS="$(CMAKE_VARS)"
44*da0073e9SAndroid Build Coastguard WorkerEXTRA_DOCKER_BUILD_FLAGS ?=
45*da0073e9SAndroid Build Coastguard Worker
46*da0073e9SAndroid Build Coastguard WorkerBUILD                    ?= build
47*da0073e9SAndroid Build Coastguard Worker# Intentionally left blank
48*da0073e9SAndroid Build Coastguard WorkerPLATFORMS_FLAG           ?=
49*da0073e9SAndroid Build Coastguard WorkerPUSH_FLAG                ?=
50*da0073e9SAndroid Build Coastguard WorkerUSE_BUILDX               ?=
51*da0073e9SAndroid Build Coastguard WorkerBUILD_PLATFORMS          ?=
52*da0073e9SAndroid Build Coastguard WorkerWITH_PUSH                ?= false
53*da0073e9SAndroid Build Coastguard Worker# Setup buildx flags
54*da0073e9SAndroid Build Coastguard Workerifneq ("$(USE_BUILDX)","")
55*da0073e9SAndroid Build Coastguard WorkerBUILD                     = buildx build
56*da0073e9SAndroid Build Coastguard Workerifneq ("$(BUILD_PLATFORMS)","")
57*da0073e9SAndroid Build Coastguard WorkerPLATFORMS_FLAG            = --platform="$(BUILD_PLATFORMS)"
58*da0073e9SAndroid Build Coastguard Workerendif
59*da0073e9SAndroid Build Coastguard Worker# Only set platforms flags if using buildx
60*da0073e9SAndroid Build Coastguard Workerifeq ("$(WITH_PUSH)","true")
61*da0073e9SAndroid Build Coastguard WorkerPUSH_FLAG                 = --push
62*da0073e9SAndroid Build Coastguard Workerendif
63*da0073e9SAndroid Build Coastguard Workerendif
64*da0073e9SAndroid Build Coastguard Worker
65*da0073e9SAndroid Build Coastguard WorkerDOCKER_BUILD              = docker $(BUILD) \
66*da0073e9SAndroid Build Coastguard Worker								--progress=$(BUILD_PROGRESS) \
67*da0073e9SAndroid Build Coastguard Worker								$(EXTRA_DOCKER_BUILD_FLAGS) \
68*da0073e9SAndroid Build Coastguard Worker								$(PLATFORMS_FLAG) \
69*da0073e9SAndroid Build Coastguard Worker								$(PUSH_FLAG) \
70*da0073e9SAndroid Build Coastguard Worker								--target $(BUILD_TYPE) \
71*da0073e9SAndroid Build Coastguard Worker								-t $(DOCKER_FULL_NAME):$(DOCKER_TAG) \
72*da0073e9SAndroid Build Coastguard Worker								$(BUILD_ARGS) .
73*da0073e9SAndroid Build Coastguard WorkerDOCKER_PUSH               = docker push $(DOCKER_FULL_NAME):$(DOCKER_TAG)
74*da0073e9SAndroid Build Coastguard Worker
75*da0073e9SAndroid Build Coastguard Worker.PHONY: all
76*da0073e9SAndroid Build Coastguard Workerall: devel-image
77*da0073e9SAndroid Build Coastguard Worker
78*da0073e9SAndroid Build Coastguard Worker.PHONY: devel-image
79*da0073e9SAndroid Build Coastguard Workerdevel-image: BASE_IMAGE := $(BASE_DEVEL)
80*da0073e9SAndroid Build Coastguard Workerdevel-image: DOCKER_TAG := $(PYTORCH_VERSION)-cuda$(CUDA_VERSION_SHORT)-cudnn$(CUDNN_VERSION)-devel
81*da0073e9SAndroid Build Coastguard Workerdevel-image:
82*da0073e9SAndroid Build Coastguard Worker	$(DOCKER_BUILD)
83*da0073e9SAndroid Build Coastguard Worker
84*da0073e9SAndroid Build Coastguard Worker.PHONY: devel-push
85*da0073e9SAndroid Build Coastguard Workerdevel-push: BASE_IMAGE := $(BASE_DEVEL)
86*da0073e9SAndroid Build Coastguard Workerdevel-push: DOCKER_TAG := $(PYTORCH_VERSION)-cuda$(CUDA_VERSION_SHORT)-cudnn$(CUDNN_VERSION)-devel
87*da0073e9SAndroid Build Coastguard Workerdevel-push:
88*da0073e9SAndroid Build Coastguard Worker	$(DOCKER_PUSH)
89*da0073e9SAndroid Build Coastguard Worker
90*da0073e9SAndroid Build Coastguard Workerifeq ("$(CUDA_VERSION_SHORT)","cpu")
91*da0073e9SAndroid Build Coastguard Worker
92*da0073e9SAndroid Build Coastguard Worker.PHONY: runtime-image
93*da0073e9SAndroid Build Coastguard Workerruntime-image: BASE_IMAGE := $(BASE_RUNTIME)
94*da0073e9SAndroid Build Coastguard Workerruntime-image: DOCKER_TAG := $(PYTORCH_VERSION)-runtime
95*da0073e9SAndroid Build Coastguard Workerruntime-image:
96*da0073e9SAndroid Build Coastguard Worker	$(DOCKER_BUILD)
97*da0073e9SAndroid Build Coastguard Worker
98*da0073e9SAndroid Build Coastguard Worker.PHONY: runtime-push
99*da0073e9SAndroid Build Coastguard Workerruntime-push: BASE_IMAGE := $(BASE_RUNTIME)
100*da0073e9SAndroid Build Coastguard Workerruntime-push: DOCKER_TAG := $(PYTORCH_VERSION)-runtime
101*da0073e9SAndroid Build Coastguard Workerruntime-push:
102*da0073e9SAndroid Build Coastguard Worker	$(DOCKER_PUSH)
103*da0073e9SAndroid Build Coastguard Worker
104*da0073e9SAndroid Build Coastguard Workerelse
105*da0073e9SAndroid Build Coastguard Worker
106*da0073e9SAndroid Build Coastguard Worker.PHONY: runtime-image
107*da0073e9SAndroid Build Coastguard Workerruntime-image: BASE_IMAGE := $(BASE_RUNTIME)
108*da0073e9SAndroid Build Coastguard Workerruntime-image: DOCKER_TAG := $(PYTORCH_VERSION)-cuda$(CUDA_VERSION_SHORT)-cudnn$(CUDNN_VERSION)-runtime
109*da0073e9SAndroid Build Coastguard Workerruntime-image:
110*da0073e9SAndroid Build Coastguard Worker	$(DOCKER_BUILD)
111*da0073e9SAndroid Build Coastguard Worker
112*da0073e9SAndroid Build Coastguard Worker.PHONY: runtime-push
113*da0073e9SAndroid Build Coastguard Workerruntime-push: BASE_IMAGE := $(BASE_RUNTIME)
114*da0073e9SAndroid Build Coastguard Workerruntime-push: DOCKER_TAG := $(PYTORCH_VERSION)-cuda$(CUDA_VERSION_SHORT)-cudnn$(CUDNN_VERSION)-runtime
115*da0073e9SAndroid Build Coastguard Workerruntime-push:
116*da0073e9SAndroid Build Coastguard Worker	$(DOCKER_PUSH)
117*da0073e9SAndroid Build Coastguard Worker
118*da0073e9SAndroid Build Coastguard Workerendif
119*da0073e9SAndroid Build Coastguard Worker
120*da0073e9SAndroid Build Coastguard Worker.PHONY: clean
121*da0073e9SAndroid Build Coastguard Workerclean:
122*da0073e9SAndroid Build Coastguard Worker	-docker rmi -f $(shell docker images -q $(DOCKER_FULL_NAME))
123