flash_att_commit := 3a9bfd076f98746c73362328958dbc68d145fbec

build-flash-attention:
	if [ ! -d 'flash-attention' ]; then \
		pip install -U packaging ninja  --no-cache-dir && \
		git clone https://github.com/HazyResearch/flash-attention.git; \
	fi
	cd flash-attention && git fetch && git checkout $(flash_att_commit) && \
	MAX_JOBS=8 python setup.py build && cd csrc/layer_norm && python setup.py build && cd ../rotary && python setup.py build

install-flash-attention: build-flash-attention
	cd flash-attention && git checkout $(flash_att_commit) && MAX_JOBS=8 python setup.py install && cd csrc/layer_norm && python setup.py install && cd ../rotary && python setup.py install
