Skip to content
Tom Ritchford edited this page May 8, 2024 · 15 revisions

Development Setup

Please see Developer Environment Setup

For fb employees, please read through this as well.

Learn about how to use PyTorch

Run through the PyTorch Basics tutorial

If you're not familiar with machine learning, here is a nice lecture series.

Understand how PyTorch is used in the open-source community

Explore popular open-source models and frameworks using PyTorch

Workflow tips and tricks

Build only what you need

If you don't need CUDA, build using USE_CUDA=0: the build is significantly faster. There are also a lot of other build flags that help get rid of components that you might not work on. Below is an opinionated build command that gets rid of a lot of different options that don't get used very often.

USE_KINETO=0 BUILD_CAFFE2=0 USE_DISTRIBUTED=0 USE_NCCL=0 BUILD_TEST=0 USE_XNNPACK=0 USE_FBGEMM=0 USE_QNNPACK=0 USE_MKLDNN=0 USE_MIOPEN=0 USE_NNPACK=0 BUILD_CAFFE2_OPS=0 USE_TENSORPIPE=0 python setup.py develop

(See this for more details)

Use viable/strict

The head of the pytorch/pytorch master branch may have test failures (see here for the current state). When developing PyTorch, instead of branching off of master, you can branch off of viable/strict. viable/strict is a branch that lags behind master and guarantees that all PyTorch tests are passing on the branch. Basing your work off of viable/strict gives you confidence that any test failures are actually your code's fault.

Some quick git tips on maintaining feature branches:

# These tips assume upstream points to pytorch/pytorch. 
# (Some people develop with origin pointing to pytorch/pytorch.)

# Create a new branch from upstream/viable/strict
git fetch upstream viable/strict
git checkout -b my_new_feature upstream/viable/strict
git push -u origin my_new_feature

# Rebase work on a branch to appear on top of viable/strict
git pull --rebase upstream viable/strict

# Delete a branch
git checkout main
git branch -D my_new_feature
git push --delete origin my_new_feature

For more details

See this detailed section in our CONTRIBUTING.MD

Submitting a change to PyTorch

Please see https://github.com/pytorch/pytorch/blob/master/CONTRIBUTING.md and the GitHub First user guide.

For fb employees, feel free to check out instructions for our old workflow of landing internally.

Clone this wiki locally