1#ifndef ae2fVK_Ann_Mlp_core_h
2#define ae2fVK_Ann_Mlp_core_h
4#include <ae2f/Ann/Mlp.h>
9#include <ae2f/errGlob.h>
10#include <vulkan/vulkan.h>
12#include <ae2f/Pack/Beg.h>
15 ae2fVK_eAnnMlpDescLayouts_ONLY,
16 ae2fVK_eAnnMlpDescLayouts_LEN
20 ae2fVK_eAnnMlpPipeLayouts_kPredict,
21 ae2fVK_eAnnMlpPipeLayouts_kTrain,
22 ae2fVK_eAnnMlpPipeLayouts_LEN
26 ae2fVK_eAnnMlpPipes_kPredict,
27 ae2fVK_eAnnMlpPipes_kPredictStream,
28 ae2fVK_eAnnMlpPipes_kFollow,
29 ae2fVK_eAnnMlpPipes_kTrainAuto,
30 ae2fVK_eAnnMlpPipes_LEN
34 ae2fVK_eAnnMlpDescPools_ONLY,
35 ae2fVK_eAnnMlpDescPools_LEN
42
43
44
47
48
49
52
53
54
55 ae2f_AnnMlpInitMkPtr_t m_mkptr;
57
58
59
60 ae2fVK_AnnMlp* restrict m_mkbase;
65 ae2fVK_AnnMlpMkU0Swap_t m_mkswap;
71 VkBufferCreateInfo m_vkbufcreatinfo;
72 VkMemoryAllocateInfo m_vkmemallocinfo;
73 VkDescriptorSetLayoutBinding m_vkdescsetlayoutbind[ae2fVK_eAnnMlpDescLayouts_LEN];
74 VkPushConstantRange m_vkpushconstrange;
81 VkComputePipelineCreateInfo m_vkcomputepipecreatinfo[ae2fVK_eAnnMlpPipes_LEN];
85 VkMemoryRequirements m_vkmemreqs;
86 VkDescriptorSetLayoutCreateInfo m_vkdescsetlayoutcreatinfo;
87 VkPipelineLayoutCreateInfo m_vkpipelayoutcreatinfo;
89 VkShaderModuleCreateInfo m_vkshadermodcreatinfo;
93 size_t m_vkmemtypeidx;
100 ClspvError m_clspverror;
107 ae2fVK_AnnMlpMkRet_t m_ret;
108 ae2fVK_AnnMlpMkU0_t m_U0;
109 ae2fVK_AnnMlpMkU1_t m_U1;
110 ae2fVK_AnnMlpMkU2_t m_U2;
111 ae2fVK_AnnMlpMkU3_t m_U3;
112 ae2fVK_AnnMlpMkU4_t m_U4;
115#include <ae2f/Pack/End.h>
122#define __ae2fVK_AnnMlpMdlSz(i_depth, ...)
123 ((sizeof(uint32_t) * (i_depth)))
125#define __ae2fVK_AnnMlpMdlOff(...) 0
127#define __ae2fVK_AnnMlpOutStreamSz(i_depth, i_outc)
128 ((sizeof(ae2f_float_t)) * (i_depth) * (i_outc))
130#define __ae2fVK_AnnMlpOutStreamOff(i_depth, i_outc)
133#define __ae2fVK_AnnMlpWeightSz(i_depth, i_outc)
134 ((sizeof(ae2f_float_t)) * ((i_depth) - 1
) * (i_outc) * (i_outc))
136#define __ae2fVK_AnnMlpWeightOff(i_depth, i_outc)
139#define __ae2fVK_AnnMlpBiasSz(i_depth, i_outc)
140 (sizeof(ae2f_float_t)) * ((i_depth) - 1
) * (i_outc)
142#define __ae2fVK_AnnMlpBiasOff(i_depth, i_outc)
145#define __ae2fVK_AnnMlpDeltaStreamSz(i_depth, i_outc)
146 (((sizeof(ae2f_float_t)) * ((i_depth) - 1
) * (i_outc)))
148#define __ae2fVK_AnnMlpDeltaStreamOff(i_depth, i_outc)
151#define __ae2fVK_AnnMlpGoalSz(i_depth, i_outc)
152 (sizeof(ae2f_float_t)) * (i_outc)
154#define __ae2fVK_AnnMlpGoalOff(i_depth, i_outc)
157#define __ae2fVK_AnnMlpGlobMemSz(i_depth, i_outc)
void ae2f_AnnAct_t(ae2f_float_t *ret, ae2f_float_t x)
Customisable activasion function type.
void ae2f_AnnLoss_t(ae2f_float_t *ret, const ae2f_float_t *out, const ae2f_float_t *goal, size_t index, size_t count)
Specify the way of calculating loss.
#define ae2f_enumdef(name,...)
#define ae2f_structdef(key, name)
#define ae2f_const_cast(t, v)
#define ae2f_static_cast(t, v)
#define ae2f_reinterpret_cast(t, v)
#define unless(...)
Invokes when condition is false.
#define __ae2fVK_AnnMlpBiasOff(i_depth, i_outc)
#define __ae2fVK_AnnMlpUnMapRanged_imp
ae2fVK_AnnSlpUnMap_t ae2fVK_AnnMlpUnMap_t
#define __ae2fVK_AnnMlpDeltaStreamSz(i_depth, i_outc)
#define __ae2fVK_AnnMlpMapRangedGeneric_imp
#define __ae2fVK_AnnMlpGoalSz(i_depth, i_outc)
VkMappedMemoryRange ae2fVK_AnnMlpMapRangedGeneric_t
#define __ae2fVK_AnnMlpMdlOff(...)
#define __ae2fVK_AnnMlpOutStreamSz(i_depth, i_outc)
#define __ae2fVK_AnnMlpWeightOff(i_depth, i_outc)
#define __ae2fVK_AnnMlpMdlSz(i_depth,...)
#define __ae2fVK_AnnMlpGoalOff(i_depth, i_outc)
ae2fVK_AnnSlpDescPoolCmdMk_t ae2fVK_AnnMlpDescPoolCmdMk_t
#define __ae2fVK_AnnMlpOutStreamOff(i_depth, i_outc)
#define __ae2fVK_AnnMlpWeightSz(i_depth, i_outc)
#define __ae2fVK_AnnMlpBiasSz(i_depth, i_outc)
#define __ae2fVK_AnnMlpGlobMemSz(i_depth, i_outc)
#define __ae2fVK_AnnMlpDeltaStreamOff(i_depth, i_outc)
VkMappedMemoryRange ae2fVK_AnnSlpMapRangedGeneric_t
VkMappedMemoryRange ae2fVK_AnnSlpUnMap_t
#define ae2fVK_AnnMlpSHADER
#define __ae2fVK_AnnSlpDescPoolMk_imp(v_descpool, r_pool, r_reterr, iv_slp, i_vkdescpoolcreatflags, i_vkmaxdescsets)
#define __ae2fVK_AnnSlpDescPoolCmdClean_imp(iv_slp, i_pool, i_cmd)
#define __ae2fVK_AnnSlpDescPoolCmdMk_imp(COMMANDONRECORDING, v_cmdmk, r_cmd, iv_slp, i_pool, iv_err, i_desccount, i_offglob, i_szglob, i_offloc, i_szloc, i_desclayout, i_pipe, i_pipelayout, i_vkcmdbuf)
#define __ae2fVK_AnnSlpDescPoolClean_imp(i_slp, i_pool)
#define ae2f_errGlob_OK
The Operation you've wanted went successful.
#define ae2f_errGlob_ALLOC_FAILED
stdlib allocating functions (malloc, calloc, realloc) has been failed.
#define ae2f_errGlob_NFOUND
Found some errors, but not by parameters. The operation has failed.
#define ae2f_errGlob_WRONG_OPERATION
Found that parameter sent by programmer is invalid. The operation may have been ceased while the midd...
uint8_t ae2f_err_t
Informs that this number represents the error.
#define ae2f_errGlob_PTR_IS_NULL
Failed to refer the pointer either l-value inside the function.
#define ae2f_errGlob_IMP_NOT_FOUND
Failed to find the function on preprocessor which is callable for some reason No operation has beed d...
ae2fVK_AnnSlpDescPoolCmd ae2fVK_AnnMlpDescPoolCmd
ae2fVK_AnnSlpCreatDescPool_t ae2fVK_AnnMlpCreatDescPool_t
ae2fVK_AnnSlpDescPool ae2fVK_AnnMlpDescPool
#define __ae2fVK_AnnSlpMkCLSPVVerbose_imp(r_handle, ir_err, i_first, i_second, i_third)
#define __ae2fVK_AnnSlpMapRangedGeneric_imp(T, v_vkmapmemrange, iv_slp, r_err, r_ptr, i_off, i_sz)
#define __ae2fVK_AnnSlpMkLoadPipeCreat_imp(CMDONERR, r_reterr, pipecreat, pipelayout, shadermod, entrypoint, idx_pipe, idx_pipelayout)
#define __ae2fVK_AnnSlpMkOnePipeLayoutVerbose_imp(CMDONERR, v_vkpushconstrange, v_vkpipelayoutcreatinfo, r_reterr, iv_slpptr, idx, szrequired, vkalloccalls, vkdev)
#define __ae2fVK_AnnSlpUnMapRanged_imp(v_out, vi_slp, i_off, i_sz)
#define __ae2fVK_AnnSlpMkAllocVKMem_imp(CMDONERR, sz, r_vkres, r_vkbuf, r_vkdevmem, v_errbit, v_vkbufcreatinfo, v_memallocinfo, vkbufuseflags, vksharemode, vkdev, v_vkmemreq, vkalloccalls, v_memtypeidx, memtypeidx_invalid_minus_one, vkpropflag_req, vkphydevmemprops)
#define __ae2f_MACRO_GENERATED
#define __ae2f_AnnMlpMk_imp(...)
#define ae2f_MAC()
delta to delta
ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const iv_bias_opt
ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const const uint32_t const size_t *const ae2f_opt size_t *const ae2f_opt const size_t ae2f_opt const size_t ae2f_opt ae2f_AnnAct_t **const ae2f_opt ae2f_AnnAct_t **const ae2f_AnnLoss_t *const ae2f_float_t ae2f_float_t const VkDevice const VkPhysicalDeviceMemoryProperties ae2f_opt VkAllocationCallbacks *const iv_vkalloccalls
ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const const uint32_t const size_t *const ae2f_opt size_t *const ae2f_opt const size_t ae2f_opt const size_t ae2f_opt ae2f_AnnAct_t **const ae2f_opt ae2f_AnnAct_t **const ae2f_AnnLoss_t *const ae2f_float_t ae2f_float_t const VkDevice const VkPhysicalDeviceMemoryProperties i_vkmemprops
ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const const uint32_t const size_t *const ae2f_opt size_t *const ae2f_opt const size_t ae2f_opt const size_t i_extra
ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const const uint32_t const size_t *const ae2f_opt size_t *const ae2f_opt const size_t ae2f_opt const size_t ae2f_opt ae2f_AnnAct_t **const ae2f_opt ae2f_AnnAct_t **const ae2f_AnnLoss_t *const ae2f_float_t i_learningrate
ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const iv_outstream_opt
ae2fVK_AnnMlp ae2f_err_t ae2f_float_t ae2f_float_t * r_ptrbias
ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const iv_deltastream_opt
ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const const uint32_t i_len_count
ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const const uint32_t const size_t *const ae2f_opt size_t *const ae2f_opt const size_t ae2f_opt const size_t ae2f_opt ae2f_AnnAct_t **const ae2f_opt ae2f_AnnAct_t **const i_actderiv
ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const const uint32_t const size_t *const ae2f_opt size_t *const ae2f_opt const size_t ae2f_opt const size_t ae2f_opt ae2f_AnnAct_t **const ae2f_opt ae2f_AnnAct_t **const ae2f_AnnLoss_t *const ae2f_float_t ae2f_float_t i_learningrate_bias
ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const const uint32_t const size_t *const ae2f_opt size_t *const ae2f_opt const size_t ae2f_opt const size_t ae2f_opt ae2f_AnnAct_t **const ae2f_opt ae2f_AnnAct_t **const ae2f_AnnLoss_t *const ae2f_float_t ae2f_float_t const VkDevice const VkPhysicalDeviceMemoryProperties ae2f_opt VkAllocationCallbacks *const ae2f_opt const char *const ae2f_opt const char *const i_vkcldefinition
ae2f_opt ae2f_float_t *const iv_weight_opt
ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const const uint32_t const size_t *const ae2f_opt size_t *const ae2f_opt const size_t ae2f_opt const size_t ae2f_opt ae2f_AnnAct_t **const ae2f_opt ae2f_AnnAct_t **const ae2f_AnnLoss_t *const ae2f_float_t ae2f_float_t const VkDevice i_vkdev
ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const const uint32_t const size_t *const ae2f_opt size_t *const ae2f_opt const size_t i_prm_offset
ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const const uint32_t const size_t *const ae2f_opt size_t *const ae2f_opt const size_t ae2f_opt const size_t ae2f_opt ae2f_AnnAct_t **const i_act
ae2fVK_AnnMlp ae2f_err_t ae2f_float_t * r_ptr
ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const const uint32_t const size_t *const ae2f_opt size_t *const ae2f_opt const size_t ae2f_opt const size_t ae2f_opt ae2f_AnnAct_t **const ae2f_opt ae2f_AnnAct_t **const ae2f_AnnLoss_t *const ae2f_float_t ae2f_float_t const VkDevice const VkPhysicalDeviceMemoryProperties ae2f_opt VkAllocationCallbacks *const ae2f_opt const char *const i_vkcldeclaration
ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const const uint32_t const size_t *const ae2f_opt size_t *const i_len_swap
ae2fVK_AnnMlp ae2f_err_t r_err
ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const const uint32_t const size_t *const i_len
ae2fVK_AnnMlp ae2f_err_t ae2f_float_t * r_ptrweight
ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const const uint32_t const size_t *const ae2f_opt size_t *const ae2f_opt const size_t ae2f_opt const size_t ae2f_opt ae2f_AnnAct_t **const ae2f_opt ae2f_AnnAct_t **const ae2f_AnnLoss_t *const i_lossderiv