Look in the Makefile for available targets to build. To build any target, for example magma-cuda111, run
make magma-cuda111
This should spawn a docker image with devtoolset3 installed in order to keep binary size down. Within the docker image, it should run build_magma.sh with the correct environment variables set, which should package the necessary files with conda build.
More specifically, build_magma.sh copies over the relevant files from the package_files directory depending on the CUDA version. More information on conda-build can be found here.
Outputted binaries should be in the output folder.
Once you have built the binaries push them with:
anaconda upload -u pytorch --force output/*/magma-cuda*.bz2
If you do not have upload permissions, please ping @seemethere or @soumith to gain access
New CUDA versions can be added by creating a new make target with the next desired version. For CUDA version NN.n, the target should be named magma-cudaNNn.
Make sure to edit the appropriate environment variables (e.g., DESIRED_CUDA, CUDA_ARCH_LIST, PACKAGE_NAME) in the Makefile accordingly. Remember also to check build_magma.sh to ensure the logic for copying over the files remains correct.
New patches can be added by editing Makefile, build_magma.sh, and package_files/meta.yaml the same way cudaPointerAttributes.patch is implemented.