InfiniOps
Operator Library for Accelerators
Loading...
Searching...
No Matches
operator_call_instantiations.h
Go to the documentation of this file.
1#ifndef INFINI_OPS_OPERATOR_CALL_INSTANTIATIONS_H_
2#define INFINI_OPS_OPERATOR_CALL_INSTANTIATIONS_H_
3
4#include <cstdint>
5#include <optional>
6#include <vector>
7
8#include "config.h"
9#include "handle.h"
10#include "operator.h"
11
13#include "base/rms_norm.h"
14#include "base/cast.h"
15#include "base/linear.h"
16#include "base/swiglu.h"
17#include "base/silu.h"
19#include "base/silu_and_mul.h"
20#include "base/relu.h"
21#include "base/add.h"
22#include "base/causal_softmax.h"
23#include "base/mul.h"
25#include "base/cat.h"
27#include "base/gemm.h"
28
29namespace infini::ops {
30
31extern template std::vector<std::size_t> Operator<::infini::ops::CausalSoftmaxInfinilm>::active_implementation_indices(Device::Type);
32extern template std::size_t Operator<::infini::ops::CausalSoftmaxInfinilm>::DefaultImplementationIndex(Device::Type);
33extern template void Operator<::infini::ops::CausalSoftmaxInfinilm>::Call<Tensor, Tensor>(const Handle& handle, const Config& config, const Tensor& input, const Tensor& out);
34extern template std::unique_ptr<Operator<::infini::ops::CausalSoftmaxInfinilm>> Operator<::infini::ops::CausalSoftmaxInfinilm>::Make<const Tensor&>(const Config& config, const Tensor input, const Tensor& out);
35extern template void Operator<::infini::ops::CausalSoftmaxInfinilm>::operator()<Tensor, Tensor>(const Tensor& input, const Tensor& out) const;
36extern template std::vector<std::size_t> Operator<::infini::ops::RmsNorm>::active_implementation_indices(Device::Type);
37extern template std::size_t Operator<::infini::ops::RmsNorm>::DefaultImplementationIndex(Device::Type);
38extern template void Operator<::infini::ops::RmsNorm>::Call<Tensor, Tensor, float, Tensor>(const Handle& handle, const Config& config, const Tensor& input, const Tensor& weight, const float& eps, const Tensor& out);
39extern template std::unique_ptr<Operator<::infini::ops::RmsNorm>> Operator<::infini::ops::RmsNorm>::Make<const Tensor&, const float&, const Tensor&>(const Config& config, const Tensor input, const Tensor& weight, const float& eps, const Tensor& out);
40extern template void Operator<::infini::ops::RmsNorm>::operator()<Tensor, Tensor, float, Tensor>(const Tensor& input, const Tensor& weight, const float& eps, const Tensor& out) const;
41extern template void Operator<::infini::ops::RmsNorm>::Call<Tensor, Tensor, Tensor>(const Handle& handle, const Config& config, const Tensor& input, const Tensor& weight, const Tensor& out);
42extern template std::unique_ptr<Operator<::infini::ops::RmsNorm>> Operator<::infini::ops::RmsNorm>::Make<const Tensor&, const Tensor&>(const Config& config, const Tensor input, const Tensor& weight, const Tensor& out);
43extern template void Operator<::infini::ops::RmsNorm>::operator()<Tensor, Tensor, Tensor>(const Tensor& input, const Tensor& weight, const Tensor& out) const;
44extern template std::vector<std::size_t> Operator<::infini::ops::Cast>::active_implementation_indices(Device::Type);
45extern template std::size_t Operator<::infini::ops::Cast>::DefaultImplementationIndex(Device::Type);
46extern template void Operator<::infini::ops::Cast>::Call<Tensor, Tensor>(const Handle& handle, const Config& config, const Tensor& input, const Tensor& out);
47extern template std::unique_ptr<Operator<::infini::ops::Cast>> Operator<::infini::ops::Cast>::Make<const Tensor&>(const Config& config, const Tensor input, const Tensor& out);
48extern template void Operator<::infini::ops::Cast>::operator()<Tensor, Tensor>(const Tensor& input, const Tensor& out) const;
49extern template std::vector<std::size_t> Operator<::infini::ops::Linear>::active_implementation_indices(Device::Type);
50extern template std::size_t Operator<::infini::ops::Linear>::DefaultImplementationIndex(Device::Type);
51extern template void Operator<::infini::ops::Linear>::Call<Tensor, Tensor, std::optional<Tensor>, Tensor>(const Handle& handle, const Config& config, const Tensor& input, const Tensor& weight, const std::optional<Tensor>& bias, const Tensor& out);
52extern template std::unique_ptr<Operator<::infini::ops::Linear>> Operator<::infini::ops::Linear>::Make<const Tensor&, const std::optional<Tensor>&, const Tensor&>(const Config& config, const Tensor input, const Tensor& weight, const std::optional<Tensor>& bias, const Tensor& out);
53extern template void Operator<::infini::ops::Linear>::operator()<Tensor, Tensor, std::optional<Tensor>, Tensor>(const Tensor& input, const Tensor& weight, const std::optional<Tensor>& bias, const Tensor& out) const;
54extern template std::vector<std::size_t> Operator<::infini::ops::Swiglu>::active_implementation_indices(Device::Type);
55extern template std::size_t Operator<::infini::ops::Swiglu>::DefaultImplementationIndex(Device::Type);
56extern template void Operator<::infini::ops::Swiglu>::Call<Tensor, Tensor, Tensor>(const Handle& handle, const Config& config, const Tensor& input, const Tensor& gate, const Tensor& out);
57extern template std::unique_ptr<Operator<::infini::ops::Swiglu>> Operator<::infini::ops::Swiglu>::Make<const Tensor&, const Tensor&>(const Config& config, const Tensor input, const Tensor& gate, const Tensor& out);
58extern template void Operator<::infini::ops::Swiglu>::operator()<Tensor, Tensor, Tensor>(const Tensor& input, const Tensor& gate, const Tensor& out) const;
59extern template std::vector<std::size_t> Operator<::infini::ops::Silu>::active_implementation_indices(Device::Type);
60extern template std::size_t Operator<::infini::ops::Silu>::DefaultImplementationIndex(Device::Type);
61extern template void Operator<::infini::ops::Silu>::Call<Tensor, Tensor>(const Handle& handle, const Config& config, const Tensor& input, const Tensor& out);
62extern template std::unique_ptr<Operator<::infini::ops::Silu>> Operator<::infini::ops::Silu>::Make<const Tensor&>(const Config& config, const Tensor input, const Tensor& out);
63extern template void Operator<::infini::ops::Silu>::operator()<Tensor, Tensor>(const Tensor& input, const Tensor& out) const;
64extern template std::vector<std::size_t> Operator<::infini::ops::TopKTopPSampler>::active_implementation_indices(Device::Type);
65extern template std::size_t Operator<::infini::ops::TopKTopPSampler>::DefaultImplementationIndex(Device::Type);
66extern template void Operator<::infini::ops::TopKTopPSampler>::Call<Tensor, std::optional<Tensor>, std::optional<Tensor>, Tensor>(const Handle& handle, const Config& config, const Tensor& logits, const std::optional<Tensor>& k, const std::optional<Tensor>& p, const Tensor& out);
67extern template std::unique_ptr<Operator<::infini::ops::TopKTopPSampler>> Operator<::infini::ops::TopKTopPSampler>::Make<const std::optional<Tensor>&, const std::optional<Tensor>&, const Tensor&>(const Config& config, const Tensor logits, const std::optional<Tensor>& k, const std::optional<Tensor>& p, const Tensor& out);
68extern template void Operator<::infini::ops::TopKTopPSampler>::operator()<Tensor, std::optional<Tensor>, std::optional<Tensor>, Tensor>(const Tensor& logits, const std::optional<Tensor>& k, const std::optional<Tensor>& p, const Tensor& out) const;
69extern template std::vector<std::size_t> Operator<::infini::ops::SiluAndMul>::active_implementation_indices(Device::Type);
70extern template std::size_t Operator<::infini::ops::SiluAndMul>::DefaultImplementationIndex(Device::Type);
71extern template void Operator<::infini::ops::SiluAndMul>::Call<Tensor, Tensor>(const Handle& handle, const Config& config, const Tensor& input, const Tensor& out);
72extern template std::unique_ptr<Operator<::infini::ops::SiluAndMul>> Operator<::infini::ops::SiluAndMul>::Make<const Tensor&>(const Config& config, const Tensor input, const Tensor& out);
73extern template void Operator<::infini::ops::SiluAndMul>::operator()<Tensor, Tensor>(const Tensor& input, const Tensor& out) const;
74extern template std::vector<std::size_t> Operator<::infini::ops::Relu>::active_implementation_indices(Device::Type);
75extern template std::size_t Operator<::infini::ops::Relu>::DefaultImplementationIndex(Device::Type);
76extern template void Operator<::infini::ops::Relu>::Call<Tensor, Tensor>(const Handle& handle, const Config& config, const Tensor& input, const Tensor& out);
77extern template std::unique_ptr<Operator<::infini::ops::Relu>> Operator<::infini::ops::Relu>::Make<const Tensor&>(const Config& config, const Tensor input, const Tensor& out);
78extern template void Operator<::infini::ops::Relu>::operator()<Tensor, Tensor>(const Tensor& input, const Tensor& out) const;
79extern template std::vector<std::size_t> Operator<::infini::ops::Add>::active_implementation_indices(Device::Type);
80extern template std::size_t Operator<::infini::ops::Add>::DefaultImplementationIndex(Device::Type);
81extern template void Operator<::infini::ops::Add>::Call<Tensor, Tensor, double, Tensor>(const Handle& handle, const Config& config, const Tensor& input, const Tensor& other, const double& alpha, const Tensor& out);
82extern template std::unique_ptr<Operator<::infini::ops::Add>> Operator<::infini::ops::Add>::Make<const Tensor&, const double&, const Tensor&>(const Config& config, const Tensor input, const Tensor& other, const double& alpha, const Tensor& out);
83extern template void Operator<::infini::ops::Add>::operator()<Tensor, Tensor, double, Tensor>(const Tensor& input, const Tensor& other, const double& alpha, const Tensor& out) const;
84extern template void Operator<::infini::ops::Add>::Call<Tensor, Tensor, Tensor>(const Handle& handle, const Config& config, const Tensor& input, const Tensor& other, const Tensor& out);
85extern template std::unique_ptr<Operator<::infini::ops::Add>> Operator<::infini::ops::Add>::Make<const Tensor&, const Tensor&>(const Config& config, const Tensor input, const Tensor& other, const Tensor& out);
86extern template void Operator<::infini::ops::Add>::operator()<Tensor, Tensor, Tensor>(const Tensor& input, const Tensor& other, const Tensor& out) const;
87extern template std::vector<std::size_t> Operator<::infini::ops::CausalSoftmax>::active_implementation_indices(Device::Type);
88extern template std::size_t Operator<::infini::ops::CausalSoftmax>::DefaultImplementationIndex(Device::Type);
89extern template void Operator<::infini::ops::CausalSoftmax>::Call<Tensor, Tensor>(const Handle& handle, const Config& config, const Tensor& input, const Tensor& out);
90extern template std::unique_ptr<Operator<::infini::ops::CausalSoftmax>> Operator<::infini::ops::CausalSoftmax>::Make<const Tensor&>(const Config& config, const Tensor input, const Tensor& out);
91extern template void Operator<::infini::ops::CausalSoftmax>::operator()<Tensor, Tensor>(const Tensor& input, const Tensor& out) const;
92extern template std::vector<std::size_t> Operator<::infini::ops::Mul>::active_implementation_indices(Device::Type);
93extern template std::size_t Operator<::infini::ops::Mul>::DefaultImplementationIndex(Device::Type);
94extern template void Operator<::infini::ops::Mul>::Call<Tensor, Tensor, Tensor>(const Handle& handle, const Config& config, const Tensor& input, const Tensor& other, const Tensor& out);
95extern template std::unique_ptr<Operator<::infini::ops::Mul>> Operator<::infini::ops::Mul>::Make<const Tensor&, const Tensor&>(const Config& config, const Tensor input, const Tensor& other, const Tensor& out);
96extern template void Operator<::infini::ops::Mul>::operator()<Tensor, Tensor, Tensor>(const Tensor& input, const Tensor& other, const Tensor& out) const;
97extern template std::vector<std::size_t> Operator<::infini::ops::TopKTopPSampleInfinilm>::active_implementation_indices(Device::Type);
99extern template void Operator<::infini::ops::TopKTopPSampleInfinilm>::Call<Tensor, std::optional<Tensor>, std::optional<Tensor>, uint64_t, uint64_t, Tensor>(const Handle& handle, const Config& config, const Tensor& logits, const std::optional<Tensor>& k, const std::optional<Tensor>& p, const uint64_t& seed, const uint64_t& offset, const Tensor& out);
100extern template std::unique_ptr<Operator<::infini::ops::TopKTopPSampleInfinilm>> Operator<::infini::ops::TopKTopPSampleInfinilm>::Make<const std::optional<Tensor>&, const std::optional<Tensor>&, const uint64_t&, const uint64_t&, const Tensor&>(const Config& config, const Tensor logits, const std::optional<Tensor>& k, const std::optional<Tensor>& p, const uint64_t& seed, const uint64_t& offset, const Tensor& out);
101extern template void Operator<::infini::ops::TopKTopPSampleInfinilm>::operator()<Tensor, std::optional<Tensor>, std::optional<Tensor>, uint64_t, uint64_t, Tensor>(const Tensor& logits, const std::optional<Tensor>& k, const std::optional<Tensor>& p, const uint64_t& seed, const uint64_t& offset, const Tensor& out) const;
102extern template std::vector<std::size_t> Operator<::infini::ops::Cat>::active_implementation_indices(Device::Type);
103extern template std::size_t Operator<::infini::ops::Cat>::DefaultImplementationIndex(Device::Type);
104extern template void Operator<::infini::ops::Cat>::Call<std::vector<Tensor>, int64_t, Tensor>(const Handle& handle, const Config& config, const std::vector<Tensor>& tensors, const int64_t& dim, const Tensor& out);
105extern template std::unique_ptr<Operator<::infini::ops::Cat>> Operator<::infini::ops::Cat>::Make<const int64_t&, const Tensor&>(const Config& config, const std::vector<Tensor> tensors, const int64_t& dim, const Tensor& out);
106extern template void Operator<::infini::ops::Cat>::operator()<std::vector<Tensor>, int64_t, Tensor>(const std::vector<Tensor>& tensors, const int64_t& dim, const Tensor& out) const;
107extern template std::vector<std::size_t> Operator<::infini::ops::TopKTopPSamplingFromLogits>::active_implementation_indices(Device::Type);
109extern template void Operator<::infini::ops::TopKTopPSamplingFromLogits>::Call<Tensor, Tensor, Tensor, std::optional<Tensor>, std::string, bool, bool, std::optional<int64_t>, std::optional<int64_t>, Tensor>(const Handle& handle, const Config& config, const Tensor& logits, const Tensor& top_k, const Tensor& top_p, const std::optional<Tensor>& indices, const std::string& filter_apply_order, const bool& deterministic, const bool& check_nan, const std::optional<int64_t>& seed, const std::optional<int64_t>& offset, const Tensor& out);
110extern template std::unique_ptr<Operator<::infini::ops::TopKTopPSamplingFromLogits>> Operator<::infini::ops::TopKTopPSamplingFromLogits>::Make<const Tensor&, const Tensor&, const std::optional<Tensor>&, const std::string&, const bool&, const bool&, const std::optional<int64_t>&, const std::optional<int64_t>&, const Tensor&>(const Config& config, const Tensor logits, const Tensor& top_k, const Tensor& top_p, const std::optional<Tensor>& indices, const std::string& filter_apply_order, const bool& deterministic, const bool& check_nan, const std::optional<int64_t>& seed, const std::optional<int64_t>& offset, const Tensor& out);
111extern template void Operator<::infini::ops::TopKTopPSamplingFromLogits>::operator()<Tensor, Tensor, Tensor, std::optional<Tensor>, std::string, bool, bool, std::optional<int64_t>, std::optional<int64_t>, Tensor>(const Tensor& logits, const Tensor& top_k, const Tensor& top_p, const std::optional<Tensor>& indices, const std::string& filter_apply_order, const bool& deterministic, const bool& check_nan, const std::optional<int64_t>& seed, const std::optional<int64_t>& offset, const Tensor& out) const;
112extern template std::vector<std::size_t> Operator<::infini::ops::Gemm>::active_implementation_indices(Device::Type);
113extern template std::size_t Operator<::infini::ops::Gemm>::DefaultImplementationIndex(Device::Type);
114extern template void Operator<::infini::ops::Gemm>::Call<Tensor, Tensor, std::optional<Tensor>, std::optional<float>, std::optional<float>, std::optional<int>, std::optional<int>, Tensor>(const Handle& handle, const Config& config, const Tensor& a, const Tensor& b, const std::optional<Tensor>& c, const std::optional<float>& alpha, const std::optional<float>& beta, const std::optional<int>& trans_a, const std::optional<int>& trans_b, const Tensor& y);
115extern template std::unique_ptr<Operator<::infini::ops::Gemm>> Operator<::infini::ops::Gemm>::Make<const Tensor&, const std::optional<Tensor>&, const std::optional<float>&, const std::optional<float>&, const std::optional<int>&, const std::optional<int>&, const Tensor&>(const Config& config, const Tensor a, const Tensor& b, const std::optional<Tensor>& c, const std::optional<float>& alpha, const std::optional<float>& beta, const std::optional<int>& trans_a, const std::optional<int>& trans_b, const Tensor& y);
116extern template void Operator<::infini::ops::Gemm>::operator()<Tensor, Tensor, std::optional<Tensor>, std::optional<float>, std::optional<float>, std::optional<int>, std::optional<int>, Tensor>(const Tensor& a, const Tensor& b, const std::optional<Tensor>& c, const std::optional<float>& alpha, const std::optional<float>& beta, const std::optional<int>& trans_a, const std::optional<int>& trans_b, const Tensor& y) const;
117extern template void Operator<::infini::ops::Gemm>::Call<Tensor, Tensor, Tensor>(const Handle& handle, const Config& config, const Tensor& a, const Tensor& b, const Tensor& y);
118extern template std::unique_ptr<Operator<::infini::ops::Gemm>> Operator<::infini::ops::Gemm>::Make<const Tensor&, const Tensor&>(const Config& config, const Tensor a, const Tensor& b, const Tensor& y);
119extern template void Operator<::infini::ops::Gemm>::operator()<Tensor, Tensor, Tensor>(const Tensor& a, const Tensor& b, const Tensor& y) const;
120
121} // namespace infini::ops
122
123#endif
Definition generated/include/config.h:12
Definition handle.h:11
Definition generated/include/operator.h:282
static void Call(const Handle &handle, const Config &config, const Args &... args)
static std::unique_ptr< Operator > Make(const Config &config, const Tensor tensor, Args &&... args)
Definition generated/include/operator.h:292
static std::vector< std::size_t > active_implementation_indices(Device::Type dev_type)
Definition generated/include/operator.h:362
Definition generated/include/operator.h:28
template void bool
Definition operator_call_instantiations.h:111
template void uint64_t
Definition operator_call_instantiations.h:101
infini::rt::TensorView Tensor
Definition tensor.h:8