# Supported GPU operatorsΒΆ

MinPy integrates MXNet operators to enable computation on GPUs. Technically all MXNet GPU operators are supported.

As a reference, following MXNet operators exist.

- Elementwise unary operators
- Abs
- Sign
- Round
- Ceil
- Floor
- Square
- Square root
- Exponential
- Logarithm
- Cosine
- Sine

- Elementwise binary operators
- Plus
- Minus
- Multiplication
- Division
- Power
- Maximum
- Minimum

- Broadcast
- Norm
- Maximum
- Minimum
- Sum
- Max axis
- Min axis
- Sum axis
- Argmax channel

- Elementwise binary broadcast
- Plus
- Minus
- Multiplication
- Division
- Power

- Matrix
- Transpose
- Expand dims
- Crop
- Slice axis
- Flip
- Dot
- Batch dot

- Deconvolution
- Sequence mask
- Concatenation
- Cast
- Swap axis
- Block grad
- Leaky relu
- RNN
- Softmax
- Pooling
- Softmax cross entropy
- Sample uniform
- Sample normal
- Smooth L1

But not all MXNet operators are gradable. You can still use them in computation, but trying to `grad`

them will result in an error.

Following MXNet operators have gradient implemented.

- Dot
- Exponential
- Logarithm
- Sum
- Plus
- Minus
- Multiplication
- Division
- True division
- Maximum
- Negation
- Transpose
- Abs
- Sign
- Round
- Ceil
- Floor
- Sqrt
- Sine
- Cosine
- Power
- Reshape
- Expand dims

As for NumPy operators, all preceding operators, plus the following, have gradient defined.

- Broadcast to
- Mod
- Minimum
- Append
- Sigmoid

The following table summarizes elementwise unary operators.

GPU operator | Gradient defined for MXNet | Gradient defined for NumPy |
---|---|---|

Abs | Y | Y |

Sign | Y | Y |

Round | Y | Y |

Ceil | Y | Y |

Floor | Y | Y |

Square | Y | Y |

Square root | Y | Y |

Exponential | Y | Y |

Logarithm | Y | Y |

Cosine | Y | Y |

Sine | Y | Y |

The following table summarizes elementwise binary operators (broadcast included).

GPU operator | Gradient defined for MXNet | Gradient defined for NumPy |
---|---|---|

Plus | Y | Y |

Subtract | Y | Y |

Multiply | Y | Y |

Divide | Y | Y |

Power | Y | Y |

Maximum | Y | Y |

Minimum | N | Y |

The following table summarizes broadcast reduce operators.

GPU operator | Gradient defined for MXNet | Gradient defined for NumPy |
---|---|---|

Norm | N | N |

Maximum | Y | Y |

Minimum | N | Y |

Sum | Y | Y |

Arg max | N | N |

The following table summarizes basic matrix operators.

GPU operator | Gradient defined for MXNet | Gradient defined for NumPy |
---|---|---|

Transpose | Y | Y |

Expand dims | Y | Y |

Crop | Y | Y |

Slice axis | Y | Y |

Flip | N | N |

Dot | Y | Y |