Poplar and PopLibs
|
Multi-convolutions allow for a set of convolutions to be executed in parallel. More...
#include <MultiConvolution.hpp>
Multi-convolutions allow for a set of convolutions to be executed in parallel.
The benefit of executing convolutions in parallel is an increase in data throughput. Specifically, executing N independent convolutions in parallel will be faster than sequentially executing them because less time is spent on the ~constant vertex overhead per tile.
Note that the allocation of associated tensors for convolutions should be done through the same api such that they are mapped across tiles appropriately for the operation.
See Convolution.hpp for information about convolutions and each individual operation.
Multi-Convolution options
planType
(serial, parallel) [=parallel]
Which multi-conv implementation to use. Serial is the same as using the normal API for each convolution.
perConvReservedTiles
Integer [=50]
The amount of tiles to reserve for each convolution when planning.
cycleBackOff
Double [=0.1]
A percentage, represented as a proportion between 0 and 1 of how much off the fastest plan when attempting to plan the largest convolution using the least amount of tiles.
This number is scaled up according to how many convolutions are being run in parallel.
params | Parameters specifying the convolution. |
options | Options controlling the implementation. |
name | Debugging name for the tensor. |