lamppp
Loading...
Searching...
No Matches
binary.hpp
1#pragma once
2
3#include "lamppp/tensor/cpu/kernels.hpp"
4#include "lamppp/tensor/cpu/meta_handler.hpp"
5#include "lamppp/tensor/cpu/offset_util.hpp"
6#include "lamppp/tensor/cpu/ptr_pack.hpp"
7#include "lamppp/tensor/tensor_impl.hpp"
8
10
11constexpr size_t kNArgs = BinaryMetaHandler::kNumElem;
12
14template <typename PtrList, typename OpFn>
15void vectorized_binary_kernel(PtrList ptr_, OpFn fn_, size_t i);
16
17template <typename PtrList, typename OpFn>
18void binary_kernel_launcher(PtrList ptr_, OpFn fn_, size_t size);
20
22template <template <typename> class OpFunctor, typename... Args>
23void binary_dispatch_handler(BinaryMetaHandler& meta, Args&&... args);
25
26extern template void binary_dispatch_handler<AddFunctor>(BinaryMetaHandler&);
27extern template void binary_dispatch_handler<SubFunctor>(BinaryMetaHandler&);
28extern template void binary_dispatch_handler<MulFunctor>(BinaryMetaHandler&);
29extern template void binary_dispatch_handler<DivFunctor>(BinaryMetaHandler&);
30extern template void binary_dispatch_handler<PowFunctor>(BinaryMetaHandler&);
31extern template void binary_dispatch_handler<EqFunctor>(BinaryMetaHandler&);
32extern template void binary_dispatch_handler<NeFunctor>(BinaryMetaHandler&);
33extern template void binary_dispatch_handler<GeFunctor>(BinaryMetaHandler&);
34extern template void binary_dispatch_handler<GtFunctor>(BinaryMetaHandler&);
35extern template void binary_dispatch_handler<LeFunctor>(BinaryMetaHandler&);
36extern template void binary_dispatch_handler<LtFunctor>(BinaryMetaHandler&);
37
38} // namespace lmp::tensor::detail::cpu
Definition binary.cpp:4
template void binary_dispatch_handler< AddFunctor >(BinaryMetaHandler &)
void binary_dispatch_handler(BinaryMetaHandler &meta, Args &&... args)
Definition binary.cpp:21