Mila 0.13.48
Deep Neural Network Library
Loading...
Searching...
No Matches
Math.Elementwise.h
Go to the documentation of this file.
1
10
11#pragma once
12#include <cuda_runtime.h>
13#include <cstddef>
14
16{
17 // ================================================================
18 // Element-wise Binary Operations
19 // ================================================================
20
29 template<typename T>
30 void launch_elementwise_add_kernel( const T* src1, const T* src2, T* dst,
31 size_t n, cudaStream_t stream );
32
36 template<typename T>
37 void launch_elementwise_subtract_kernel( const T* src1, const T* src2, T* dst,
38 size_t n, cudaStream_t stream );
39
43 template<typename T>
44 void launch_elementwise_multiply_kernel( const T* src1, const T* src2, T* dst,
45 size_t n, cudaStream_t stream );
46
50 template<typename T>
51 void launch_elementwise_divide_kernel( const T* src1, const T* src2, T* dst,
52 size_t n, cudaStream_t stream );
53
57 template<typename T>
58 void launch_elementwise_max_kernel( const T* src1, const T* src2, T* dst,
59 size_t n, cudaStream_t stream );
60
64 template<typename T>
65 void launch_elementwise_min_kernel( const T* src1, const T* src2, T* dst,
66 size_t n, cudaStream_t stream );
67
68 // ================================================================
69 // Scalar Operations
70 // ================================================================
71
80 template<typename T>
81 void launch_scalar_add_kernel( const T* src, T* dst, T scalar,
82 size_t n, cudaStream_t stream );
83
87 template<typename T>
88 void launch_scalar_multiply_kernel( const T* src, T* dst, T scalar,
89 size_t n, cudaStream_t stream );
90
94 template<typename T>
95 void launch_scalar_divide_kernel( const T* src, T* dst, T scalar,
96 size_t n, cudaStream_t stream );
97
101 template<typename T>
102 void launch_scalar_subtract_kernel( const T* src, T* dst, T scalar,
103 size_t n, cudaStream_t stream );
104
105 // ================================================================
106 // Comparison Operations
107 // ================================================================
108
112 template<typename T>
113 void launch_elementwise_equal_kernel( const T* src1, const T* src2, T* dst,
114 size_t n, cudaStream_t stream );
115
119 template<typename T>
120 void launch_elementwise_greater_kernel( const T* src1, const T* src2, T* dst,
121 size_t n, cudaStream_t stream );
122
126 template<typename T>
127 void launch_elementwise_less_kernel( const T* src1, const T* src2, T* dst,
128 size_t n, cudaStream_t stream );
129
130 // ================================================================
131 // Unary Operations
132 // ================================================================
133
137 template<typename T>
138 void launch_abs_kernel( const T* src, T* dst, size_t n, cudaStream_t stream );
139
143 template<typename T>
144 void launch_negate_kernel( const T* src, T* dst, size_t n, cudaStream_t stream );
145
149 template<typename T>
150 void launch_square_kernel( const T* src, T* dst, size_t n, cudaStream_t stream );
151
155 template<typename T>
156 void launch_sqrt_kernel( const T* src, T* dst, size_t n, cudaStream_t stream );
157}
Definition Math.Elementwise.h:16
void launch_scalar_subtract_kernel(const T *src, T *dst, T scalar, size_t n, cudaStream_t stream)
Launch scalar subtraction: dst = src - scalar.
void launch_elementwise_less_kernel(const T *src1, const T *src2, T *dst, size_t n, cudaStream_t stream)
Launch element-wise less than: dst = (src1 < src2) ?
void launch_scalar_divide_kernel(const T *src, T *dst, T scalar, size_t n, cudaStream_t stream)
Launch scalar division: dst = src / scalar.
void launch_elementwise_subtract_kernel(const T *src1, const T *src2, T *dst, size_t n, cudaStream_t stream)
Launch element-wise tensor subtraction: dst = src1 - src2.
void launch_elementwise_greater_kernel(const T *src1, const T *src2, T *dst, size_t n, cudaStream_t stream)
Launch element-wise greater than: dst = (src1 > src2) ?
void launch_sqrt_kernel(const T *src, T *dst, size_t n, cudaStream_t stream)
Launch square root: dst = sqrt(src).
void launch_elementwise_multiply_kernel(const T *src1, const T *src2, T *dst, size_t n, cudaStream_t stream)
Launch element-wise tensor multiplication: dst = src1 * src2.
void launch_scalar_add_kernel(const T *src, T *dst, T scalar, size_t n, cudaStream_t stream)
Launch scalar addition: dst = src + scalar.
void launch_elementwise_divide_kernel(const T *src1, const T *src2, T *dst, size_t n, cudaStream_t stream)
Launch element-wise tensor division: dst = src1 / src2.
void launch_square_kernel(const T *src, T *dst, size_t n, cudaStream_t stream)
Launch square: dst = src * src.
void launch_elementwise_min_kernel(const T *src1, const T *src2, T *dst, size_t n, cudaStream_t stream)
Launch element-wise minimum: dst = min(src1, src2).
void launch_negate_kernel(const T *src, T *dst, size_t n, cudaStream_t stream)
Launch negation: dst = -src.
void launch_elementwise_add_kernel(const T *src1, const T *src2, T *dst, size_t n, cudaStream_t stream)
Launch element-wise tensor addition: dst = src1 + src2.
void launch_elementwise_max_kernel(const T *src1, const T *src2, T *dst, size_t n, cudaStream_t stream)
Launch element-wise maximum: dst = max(src1, src2).
void launch_abs_kernel(const T *src, T *dst, size_t n, cudaStream_t stream)
Launch absolute value: dst = abs(src).
void launch_elementwise_equal_kernel(const T *src1, const T *src2, T *dst, size_t n, cudaStream_t stream)
Launch element-wise equality: dst = (src1 == src2) ?
void launch_scalar_multiply_kernel(const T *src, T *dst, T scalar, size_t n, cudaStream_t stream)
Launch scalar multiplication: dst = src * scalar.