Skip to main content

ruda_tensor_host/ops/
activation.rs

1use ruda_tensor::Scalar;
2use ruda_tensor::ops::ActivationOps;
3use ruda_tensor::tensor::FloatTensor;
4use crate::Host;
5
6pub use rudnn_host::activation::{softmax, layer_norm};
7
8impl ActivationOps<Host> for Host {
9    fn relu(tensor: FloatTensor<Host>) -> FloatTensor<Host> {
10        rudnn_host::activation::relu(tensor)
11    }
12
13    fn relu_backward(output: FloatTensor<Host>, grad: FloatTensor<Host>) -> FloatTensor<Host> {
14        rudnn_host::activation::relu_backward(output, grad)
15    }
16
17    fn leaky_relu(tensor: FloatTensor<Host>, negative_slope: Scalar) -> FloatTensor<Host> {
18        rudnn_host::activation::leaky_relu(tensor, negative_slope)
19    }
20
21    fn prelu(tensor: FloatTensor<Host>, alpha: FloatTensor<Host>) -> FloatTensor<Host> {
22        rudnn_host::activation::prelu(tensor, alpha)
23    }
24
25    fn gelu(tensor: FloatTensor<Host>) -> FloatTensor<Host> {
26        rudnn_host::activation::gelu(tensor)
27    }
28
29    fn gelu_backward(x: FloatTensor<Host>, grad: FloatTensor<Host>) -> FloatTensor<Host> {
30        rudnn_host::activation::gelu_backward(x, grad)
31    }
32
33    fn sigmoid(tensor: FloatTensor<Host>) -> FloatTensor<Host> {
34        rudnn_host::activation::sigmoid(tensor)
35    }
36
37    fn sigmoid_backward(output: FloatTensor<Host>, grad: FloatTensor<Host>) -> FloatTensor<Host> {
38        rudnn_host::activation::sigmoid_backward(output, grad)
39    }
40
41    fn hard_sigmoid(tensor: FloatTensor<Host>, alpha: Scalar, beta: Scalar) -> FloatTensor<Host> {
42        rudnn_host::activation::hard_sigmoid(tensor, alpha, beta)
43    }
44
45    fn log_sigmoid(tensor: FloatTensor<Host>) -> FloatTensor<Host> {
46        rudnn_host::activation::log_sigmoid(tensor)
47    }
48
49    fn log_sigmoid_backward(x: FloatTensor<Host>, grad: FloatTensor<Host>) -> FloatTensor<Host> {
50        rudnn_host::activation::log_sigmoid_backward(x, grad)
51    }
52
53    fn softmax(tensor: FloatTensor<Host>, dim: usize) -> FloatTensor<Host> {
54        rudnn_host::activation::softmax(tensor, dim)
55    }
56}