Q.ANT Native Computing Toolkit 2.4.0
All you need for photonic computing
Loading...
Searching...
No Matches
qant_native_computing_toolkit_ai.h
Go to the documentation of this file.
1#ifndef QANT_NATIVE_COMPUTING_TOOLKIT_AI_H
2#define QANT_NATIVE_COMPUTING_TOOLKIT_AI_H
3
4#ifndef __cplusplus
5#include <stdbool.h>
6#endif
7#include <stddef.h>
8#include <stdint.h>
9
10#include <dlpack/dlpack.h>
11
12#ifdef __cplusplus
13namespace qant_native_computing_toolkit::ai
14{
15 extern "C"
16 {
17#endif
18
27 DLManagedTensorVersioned *add_bias_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features,
28 DLManagedTensorVersioned const *bias);
29
39 DLManagedTensorVersioned *add_bias_for_conv2d_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features,
40 DLManagedTensorVersioned const *bias);
41
52 DLManagedTensorVersioned *relu_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features);
53
64 DLManagedTensorVersioned *sigmoid_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features);
65
76 DLManagedTensorVersioned *softmax_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features);
77
92 DLManagedTensorVersioned *conv_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features,
93 DLManagedTensorVersioned const *weights,
94 size_t const padding,
95 size_t const stride,
96 size_t const dilation);
97
112 DLManagedTensorVersioned *conv_transpose_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features,
113 DLManagedTensorVersioned const *weights,
114 size_t const padding,
115 size_t const stride,
116 size_t const dilation,
117 size_t const output_padding);
118
126
137 ConvWeightsHandle *upload_conv_weights(const uint32_t npu_id, DLManagedTensorVersioned const *weights);
138
146
160 DLManagedTensorVersioned *conv_fprop_preloaded_weights(DLManagedTensorVersioned const *features,
161 ConvWeightsHandle const *weights,
162 size_t const padding,
163 size_t const stride,
164 size_t const dilation);
165
175
186 DLManagedTensorVersioned const *weights);
187
196
211 DLManagedTensorVersioned *conv_transpose_fprop_preloaded_weights(DLManagedTensorVersioned const *features,
212 ConvTransposeWeightsHandle const *weights,
213 size_t const padding,
214 size_t const stride,
215 size_t const dilation,
216 size_t const output_padding);
217
238 DLManagedTensorVersioned *batchnorm2d_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features,
239 DLManagedTensorVersioned const *means,
240 DLManagedTensorVersioned const *variances,
241 DLManagedTensorVersioned const *weights,
242 DLManagedTensorVersioned const *bias,
243 float const eps);
244
262 DLManagedTensorVersioned *maxpool2d_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features,
263 size_t const kernel_height,
264 size_t const kernel_width,
265 size_t const padding,
266 size_t const stride);
267
285 DLManagedTensorVersioned *avgpool2d_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features,
286 size_t const kernel_height,
287 size_t const kernel_width,
288 size_t const padding,
289 size_t const stride,
290 bool const count_include_pad);
291
304 DLManagedTensorVersioned *adaptive_maxpool2d_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features,
305 size_t const output_height,
306 size_t const output_width);
307
320 DLManagedTensorVersioned *adaptive_avgpool2d_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features,
321 size_t const output_height,
322 size_t const output_width);
323
344 DLManagedTensorVersioned *calc_kan_layer_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features,
345 DLManagedTensorVersioned const *phis,
346 DLManagedTensorVersioned const *ampls,
347 DLManagedTensorVersioned const *ks);
348
349#ifdef __cplusplus
350 } // extern "C"
351} // namespace qant_native_computing_toolkit::ai
352#endif
353
354#endif // QANT_NATIVE_COMPUTING_TOOLKIT_AI_H
DLManagedTensorVersioned * batchnorm2d_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features, DLManagedTensorVersioned const *means, DLManagedTensorVersioned const *variances, DLManagedTensorVersioned const *weights, DLManagedTensorVersioned const *bias, float const eps)
Performs a forward pass through a batchnorm2d layer.
ConvWeightsHandle * upload_conv_weights(const uint32_t npu_id, DLManagedTensorVersioned const *weights)
Uploads convolution weights to device memory so they can be reused across multiple calls to conv_fpro...
DLManagedTensorVersioned * adaptive_avgpool2d_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features, size_t const output_height, size_t const output_width)
Performs a forward pass through an adaptive avgpooling2d layer.
DLManagedTensorVersioned * maxpool2d_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features, size_t const kernel_height, size_t const kernel_width, size_t const padding, size_t const stride)
Performs a forward pass through a maxpooling2d layer.
struct ConvTransposeWeightsHandle ConvTransposeWeightsHandle
Opaque handle to transposed convolution weights that have been uploaded to device memory.
Definition qant_native_computing_toolkit_ai.h:174
DLManagedTensorVersioned * calc_kan_layer_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features, DLManagedTensorVersioned const *phis, DLManagedTensorVersioned const *ampls, DLManagedTensorVersioned const *ks)
Calculates a Q.ANT version of a KAN layer (https://arxiv.org/abs/2404.19756) based on scaled_periodic...
struct ConvWeightsHandle ConvWeightsHandle
Opaque handle to convolution weights that have been uploaded to device memory.
Definition qant_native_computing_toolkit_ai.h:125
ConvTransposeWeightsHandle * upload_conv_transpose_weights(const uint32_t npu_id, DLManagedTensorVersioned const *weights)
Uploads transposed convolution weights to device memory so they can be reused across multiple calls t...
DLManagedTensorVersioned * conv_fprop_preloaded_weights(DLManagedTensorVersioned const *features, ConvWeightsHandle const *weights, size_t const padding, size_t const stride, size_t const dilation)
Performs a forward pass through a convolution layer using weights already uploaded to device memory....
DLManagedTensorVersioned * conv_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features, DLManagedTensorVersioned const *weights, size_t const padding, size_t const stride, size_t const dilation)
Performs a forward pass through a convolution layer.
DLManagedTensorVersioned * add_bias_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features, DLManagedTensorVersioned const *bias)
Element-wise addition. Supports batched input.
int conv_weights_free(ConvWeightsHandle *handle)
Frees convolution weights previously uploaded with upload_conv_weights().
DLManagedTensorVersioned * conv_transpose_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features, DLManagedTensorVersioned const *weights, size_t const padding, size_t const stride, size_t const dilation, size_t const output_padding)
Performs a forward pass through a transposed convolution layer.
DLManagedTensorVersioned * conv_transpose_fprop_preloaded_weights(DLManagedTensorVersioned const *features, ConvTransposeWeightsHandle const *weights, size_t const padding, size_t const stride, size_t const dilation, size_t const output_padding)
Performs a forward pass through a transposed convolution layer using weights already uploaded to devi...
DLManagedTensorVersioned * avgpool2d_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features, size_t const kernel_height, size_t const kernel_width, size_t const padding, size_t const stride, bool const count_include_pad)
Performs a forward pass through a avgpooling2d layer.
DLManagedTensorVersioned * relu_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features)
Performs a forward pass through a ReLU layer.
DLManagedTensorVersioned * add_bias_for_conv2d_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features, DLManagedTensorVersioned const *bias)
Element-wise addition. Specifically used for conv2d.
DLManagedTensorVersioned * sigmoid_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features)
Performs a forward pass through a Sigmoid layer.
DLManagedTensorVersioned * softmax_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features)
Performs a forward pass through a Softmax layer.
DLManagedTensorVersioned * adaptive_maxpool2d_fprop(const uint32_t npu_id, DLManagedTensorVersioned const *features, size_t const output_height, size_t const output_width)
Performs a forward pass through an adaptive maxpooling2d layer.
int conv_transpose_weights_free(ConvTransposeWeightsHandle *handle)
Frees transposed convolution weights previously uploaded with upload_conv_transpose_weights().