Skip to content

Commit

Permalink
Mention custom ops
Browse files Browse the repository at this point in the history
  • Loading branch information
awf committed Oct 9, 2023
1 parent a43c1b3 commit 10df9ce
Showing 1 changed file with 9 additions and 0 deletions.
9 changes: 9 additions & 0 deletions ipu/docs/performance.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,12 @@ def update(i, opt_state, batch):
will result into an IPU jitted function where only the `batch` is transfered at every call from host to device, and the `opt_state` remains on the IPU SRAM (after being transfered at the first call). The training loop does not require any additional modification.

Please refer to the [MNIST example](../examples/mnist_classifier.py) for a full example of buffer donation on the IPU.


## Write a custom op

One of the joys of IPU programming is that programming at the tile level is often conceptually easier than on GPU systems because the IPU tile processor behaves like a conventional processor, programmed in C++. See an example at
[custom_primitive_test.py](../tests/ipu/primitive/custom_primitive_test.py).

For further examples, see [demo_vertex.cpp](https://github.com/graphcore-research/tessellate-ipu/blob/main/examples/demo/demo_vertex.cpp) in the [TessellateIPU library](https://github.com/graphcore-research/tessellate-ipu).

0 comments on commit 10df9ce

Please sign in to comment.