summaryrefslogtreecommitdiff
path: root/ot/gpu/cudamat/CONTRIBUTE.md
diff options
context:
space:
mode:
authorLeo gautheron <gautheron@iv-cm-359.creatis.insa-lyon.fr>2017-04-20 12:12:15 +0200
committerLeo gautheron <gautheron@iv-cm-359.creatis.insa-lyon.fr>2017-04-20 12:12:15 +0200
commit16f51f971607efab2c73958d207c582b389406c8 (patch)
tree299a4f6f13faf8545d2144767e9a7791098aacf8 /ot/gpu/cudamat/CONTRIBUTE.md
parent48ec27d8e1c2599bd6d9015d15f4204b8116af28 (diff)
sinkhorn GPU implementation
Diffstat (limited to 'ot/gpu/cudamat/CONTRIBUTE.md')
-rw-r--r--ot/gpu/cudamat/CONTRIBUTE.md74
1 files changed, 74 insertions, 0 deletions
diff --git a/ot/gpu/cudamat/CONTRIBUTE.md b/ot/gpu/cudamat/CONTRIBUTE.md
new file mode 100644
index 0000000..a98a39f
--- /dev/null
+++ b/ot/gpu/cudamat/CONTRIBUTE.md
@@ -0,0 +1,74 @@
+Development installation
+------------------------
+
+If you want to develop cudamat, you should clone the github repository instead
+of downloading a release. Furthermore, it is useful to install it in editable
+mode. Instead of copying the files somewhere Python can find them, this will
+point Python directly to the directory you install it from. Either of the
+following commands will do:
+
+```bash
+# a) Install for your user in editable mode:
+python setup.py develop --prefix=~/.local
+# b) Install for your user in editable mode, but with pip:
+pip install --user --editable .
+```
+
+As for the [standard installation](INSTALL.md), you can set the `NVCC_FLAGS`
+environment variable to compile for a specific architecture.
+
+Update after local changes
+--------------------------
+
+Your changes to `.py` files will show up immediately the next time you import
+cudamat. Changes to `.cu` and `.cuh` files require a recompilation triggered
+by just running the above installation command again.
+
+Update after remote changes
+---------------------------
+
+To obtain the latest version, just pull in the remote changes:
+
+```bash
+git checkout master
+git fetch origin
+git merge origin/master
+```
+
+Then recompile as per the instructions in the previous section.
+
+Contribute back
+---------------
+
+If you created a great new feature that is useful to the rest of the world,
+and it even comes with docstrings and updated tests, we will gladly incorporate
+it into cudamat. To do that, you will need to send us a pull request from your
+fork.
+
+If you haven't forked cudamat yet, log in to your github account, go to
+https://github.com/cudamat/cudamat and hit the "Fork" button.
+Now instead of having `origin` point to `cudamat/cudamat`, you will want to have
+it point to your fork, and have `upstream` point to the official project:
+
+```bash
+git remote rename origin upstream
+git remote add origin git@github.com:yourusername/cudamat
+git fetch origin
+```
+
+Create a branch to house your changes:
+
+```bash
+git checkout -b my-new-feature
+```
+
+Hack away, then add your changes, commit and push:
+
+```bash
+git add all.py my.py changes.py
+git commit -m 'Added a new feature that does this and that'
+git push origin my-new-feature
+```
+
+Now send us a pull request asking to merge `yourusername:my-new-feature` into
+`cudamat:master` and we will come back to you!