InfiniOps
Operator Library for Accelerators
Loading...
Searching...
No Matches
dispatcher.h File Reference
#include <iostream>
#include <optional>
#include <string_view>
#include <vector>
#include "common/traits.h"
#include "data_type.h"
#include "device.h"

Go to the source code of this file.

Classes

struct  infini::ops::MultiDispatchRecurseAdapter< TypePack< RestLists... >, Functor, items... >
 

Namespaces

namespace  infini
 
namespace  infini::ops
 
namespace  infini::ops::detail
 

Functions

template<typename ValueType , typename Functor , typename... Args, auto head, auto... tail>
auto infini::ops::detail::DispatchFuncImpl (ValueType value, Functor &&func, std::string_view context_str, List< head, tail... >, Args &&... args)
 
template<typename ValueType , ValueType... all_values, typename Functor , typename... Args>
auto infini::ops::DispatchFunc (ValueType value, Functor &&func, std::string_view context_str="", Args &&... args)
 
template<typename Functor , typename... Args, auto... items>
auto infini::ops::DispatchFunc (const std::vector< int64_t > &values, size_t, Functor &&func, std::string_view, List< items... >, Args &&... args)
 
template<typename FirstList , typename... RestLists, typename Functor , typename... Args, auto... items>
auto infini::ops::DispatchFunc (const std::vector< int64_t > &values, size_t index, Functor &&func, std::string_view context_str, List< items... >, Args &&... args)
 
template<typename RestListsPack , typename Functor , typename... Args, auto... items, auto... allowed>
auto infini::ops::MultiDispatchFirstDim (const std::vector< int64_t > &values, size_t index, Functor &func, std::string_view context_str, List< items... >, List< allowed... >, Args &&... args)
 
template<Device::Type kDev, DataType... allowed_dtypes, typename Functor , typename... Args>
auto infini::ops::DispatchFunc (DataType dtype, Functor &&func, std::string_view context_str="", Args &&... args)
 
template<Device::Type kDev, typename... Lists, typename Functor , typename... Args>
auto infini::ops::DispatchFunc (std::initializer_list< DataType > dtypes, Functor &&func, std::string_view context_str="", Args &&... args)
 
template<auto... allowed_devices, typename Functor , typename... Args>
auto infini::ops::DispatchFunc (Device::Type device, Functor &&func, std::string_view context_str="", Args &&... args)
 
template<typename... Lists, typename Functor , typename... Args>
auto infini::ops::DispatchFunc (std::initializer_list< Device::Type > devices, Functor &&func, std::string_view context_str="", Args &&... args)
 
template<typename ValueType , typename Functor , typename... Args, auto... items>
auto infini::ops::DispatchFuncListAliasImpl (ValueType value, Functor &&func, std::string_view context_str, List< items... >, Args &&... args)
 
template<Device::Type kDev, typename ValueType , typename Functor , typename... Args, auto... items>
auto infini::ops::DispatchFuncListAliasImpl (ValueType value, Functor &&func, std::string_view context_str, List< items... >, Args &&... args)
 
template<typename ListType , typename ValueType , typename Functor , typename... Args, typename = std::enable_if_t<IsListType<ListType>::value>>
auto infini::ops::DispatchFunc (ValueType value, Functor &&func, std::string_view context_str="", Args &&... args)
 
template<Device::Type kDev, typename ListType , typename ValueType , typename Functor , typename... Args, typename = std::enable_if_t<IsListType<ListType>::value>>
auto infini::ops::DispatchFunc (ValueType value, Functor &&func, std::string_view context_str="", Args &&... args)
 
template<typename... Lists, typename Functor , typename... Args>
auto infini::ops::DispatchFunc (std::initializer_list< int64_t > keys, Functor &&func, std::string_view context_str="", Args &&... args)