ae2f_docs
Slp.h
Go to the documentation of this file.
1#ifndef ae2fVK_Ann_Slp_h
2#define ae2fVK_Ann_Slp_h
3
4#include "./Slp.core.h"
5#include "./Slp.auto.h"
6#include "./SlpPool.auto.h"
7
8/**
9 * @brief
10 * Vulkan memory layout
11 * [WeightBuffer] [BiasBuffer] [DeltaCacheBuffer]
12 *
13 *
14 * */
15ae2f_structdef(struct, ae2fVK_AnnSlp)
16{
17 ae2f_AnnSlp m_slp;
18
19 VkDevice m_vkdev;
20 VkResult m_vkres;
21 VkBuffer m_vkglobbuf, m_vklocbuf;
22 VkDeviceMemory m_vkglobdevmem, m_vklocdevmem;
23
24 VkAllocationCallbacks* restrict m_vkalloccalls;
25
26 VkDescriptorSetLayout m_vkdescsetlayout[ae2fVK_eAnnSlpDescLayouts_LEN];
27
28 VkPipelineLayout m_vkpipelayout[ae2fVK_eAnnSlpPipeLayouts_LEN];
29 VkShaderModule m_vkshadermodule;
30 VkPipeline m_vkpipeline[ae2fVK_eAnnSlpPipes_LEN];
31};
32
33/**
34 * @brief
35 * Descriptor Pool for ae2fVK_AnnSlp.
36 *
37 * @details
38 * Note that pool has maximum amount of ae2fVK_AnnSLpDescPoolCmd.
39 * */
40ae2f_structdef(struct, ae2fVK_AnnSlpDescPool)
41{
42 VkDescriptorPool m_vkdescpool;
43};
44/**
45 * @brief
46 * A command, descriptor set for one task.
47 * */
48ae2f_structdef(struct, ae2fVK_AnnSlpDescPoolCmd)
49{
50 VkDescriptorSet m_vkdescset;
51};
52
53#endif
void ae2f_AnnAct_t(ae2f_float_t *ret, ae2f_float_t x)
Customisable activasion function type.
Definition Act.h:19
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.
Definition Act.h:29
#define ae2f_enumdef(name,...)
Definition Cast.h:111
#define ae2f_structdef(key, name)
Definition Cast.h:110
#define ae2f_const_cast(t, v)
Definition Cast.h:57
#define ae2f_static_cast(t, v)
Definition Cast.h:42
#define ae2f_reinterpret_cast(t, v)
Definition Cast.h:52
#define unless(...)
Invokes when condition is false.
Definition Cast.h:103
ae2f_float ae2f_float_t
Definition Float.h:38
#define ae2f_opt
Definition Guide.h:26
#define __ae2fVK_AnnMlpBiasOff(i_depth, i_outc)
Definition Mlp.core.h:142
#define __ae2fVK_AnnMlpUnMapRanged_imp
Definition Mlp.core.h:168
ae2fVK_AnnSlpUnMap_t ae2fVK_AnnMlpUnMap_t
Definition Mlp.core.h:117
#define __ae2fVK_AnnMlpDeltaStreamSz(i_depth, i_outc)
Definition Mlp.core.h:145
#define __ae2fVK_AnnMlpMapRangedGeneric_imp
Definition Mlp.core.h:167
#define __ae2fVK_AnnMlpGoalSz(i_depth, i_outc)
Definition Mlp.core.h:151
VkMappedMemoryRange ae2fVK_AnnMlpMapRangedGeneric_t
Definition Mlp.core.h:118
#define __ae2fVK_AnnMlpMdlOff(...)
Definition Mlp.core.h:125
#define __ae2fVK_AnnMlpOutStreamSz(i_depth, i_outc)
Definition Mlp.core.h:127
#define __ae2fVK_AnnMlpWeightOff(i_depth, i_outc)
Definition Mlp.core.h:136
#define __ae2fVK_AnnMlpMdlSz(i_depth,...)
Definition Mlp.core.h:122
#define __ae2fVK_AnnMlpGoalOff(i_depth, i_outc)
Definition Mlp.core.h:154
ae2fVK_AnnSlpDescPoolCmdMk_t ae2fVK_AnnMlpDescPoolCmdMk_t
Definition Mlp.core.h:119
#define __ae2fVK_AnnMlpOutStreamOff(i_depth, i_outc)
Definition Mlp.core.h:130
#define __ae2fVK_AnnMlpWeightSz(i_depth, i_outc)
Definition Mlp.core.h:133
#define __ae2fVK_AnnMlpBiasSz(i_depth, i_outc)
Definition Mlp.core.h:139
#define __ae2fVK_AnnMlpGlobMemSz(i_depth, i_outc)
Definition Mlp.core.h:157
#define __ae2fVK_AnnMlpDeltaStreamOff(i_depth, i_outc)
Definition Mlp.core.h:148
#define __ae2fVK_AnnSlpGoalSz(i_inp, i_out)
Definition Slp.core.h:172
ae2fVK_eAnnSlpDescLayouts
Definition Slp.core.h:47
@ ae2fVK_eAnnSlpDescLayouts_kPredict
Definition Slp.core.h:48
@ ae2fVK_eAnnSlpDescLayouts_LEN
Definition Slp.core.h:50
@ ae2fVK_eAnnSlpDescLayouts_kTrain
Definition Slp.core.h:49
#define __ae2fVK_AnnSlpBiasOff(i_inp, i_out)
Definition Slp.core.h:175
#define __ae2fVK_AnnSlpGoalOff(i_inp, i_out)
Definition Slp.core.h:179
#define __ae2fVK_AnnSlpOutOff(i_inp, i_out)
Definition Slp.core.h:177
#define __ae2fVK_AnnSlpInpSz(i_inp,...)
Definition Slp.core.h:169
VkMappedMemoryRange ae2fVK_AnnSlpMapRangedGeneric_t
Definition Slp.core.h:152
#define __ae2fVK_AnnSlpBiasSz(i_inp, i_out)
Definition Slp.core.h:168
#define __ae2fVK_AnnSlpWeightSz(i_inp, i_out)
Definition Slp.core.h:167
#define __ae2fVK_AnnSlpInpOff(i_inp, i_out)
Definition Slp.core.h:176
ae2fVK_eAnnSlpPipeLayouts
Definition Slp.core.h:40
@ ae2fVK_eAnnSlpPipeLayouts_LEN
Definition Slp.core.h:44
@ ae2fVK_eAnnSlpPipeLayouts_kTrain
Definition Slp.core.h:42
@ ae2fVK_eAnnSlpPipeLayouts_kPredict
Definition Slp.core.h:41
@ ae2fVK_eAnnSlpPipeLayouts_kFit
Definition Slp.core.h:43
#define __ae2fVK_AnnSlpDeltaSz(i_inp, i_out)
Definition Slp.core.h:171
#define __ae2fVK_AnnSlpWeightOff(i_inp, i_out)
Definition Slp.core.h:174
ae2fVK_eAnnSlpDescPools
Definition Slp.core.h:34
@ ae2fVK_eAnnSlpDescPools_kPredict
Definition Slp.core.h:35
@ ae2fVK_eAnnSlpDescPools_kTrain
Definition Slp.core.h:36
@ ae2fVK_eAnnSlpDescPools_LEN
Definition Slp.core.h:37
#define __ae2fVK_AnnSlpGlobSz(i_inp, i_out)
Definition Slp.core.h:181
#define __ae2fVK_AnnSlpOutSz(i_inp, i_out)
Definition Slp.core.h:170
VkMappedMemoryRange ae2fVK_AnnSlpUnMap_t
Definition Slp.core.h:152
char STATIC_ASSERT_ae2fVK_AnnSlpMkU2_vkdescsetlayoutbind_sz[sizeof(ae2fVK_AnnSlpMkU2S0_t)==sizeof(VkDescriptorSetLayoutBinding) *2 ? 1 :-1]
Definition Slp.core.h:117
ae2fVK_eAnnSlpPipes
Definition Slp.core.h:24
@ ae2fVK_eAnnSlpPipes_kFit
Definition Slp.core.h:28
@ ae2fVK_eAnnSlpPipes_kTrain
Definition Slp.core.h:27
@ ae2fVK_eAnnSlpPipes_kPredict
Definition Slp.core.h:25
@ ae2fVK_eAnnSlpPipes_LEN
This is the end of the value, which typically means the count of actual kernel used.
Definition Slp.core.h:31
@ ae2fVK_eAnnSlpPipes_kFollow
Definition Slp.core.h:26
#define __ae2fVK_AnnSlpDeltaOff(i_inp, i_out)
Definition Slp.core.h:178
#define ae2f_MAC_BUILD
Definition Util.h:4
#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 ae2fVK_AnnSlpSHADER
#define ae2f_errGlob_OK
The Operation you've wanted went successful.
Definition errGlob.h:23
#define ae2f_errGlob_ALLOC_FAILED
stdlib allocating functions (malloc, calloc, realloc) has been failed.
Definition errGlob.h:40
#define ae2f_errGlob_NFOUND
Found some errors, but not by parameters. The operation has failed.
Definition errGlob.h:50
#define ae2f_errGlob_WRONG_OPERATION
Found that parameter sent by programmer is invalid. The operation may have been ceased while the midd...
Definition errGlob.h:45
uint8_t ae2f_err_t
Informs that this number represents the error.
Definition errGlob.h:19
#define ae2f_errGlob_PTR_IS_NULL
Failed to refer the pointer either l-value inside the function.
Definition errGlob.h:32
#define ae2f_errGlob_IMP_NOT_FOUND
Failed to find the function on preprocessor which is callable for some reason No operation has beed d...
Definition errGlob.h:28
ae2fVK_AnnSlpDescPoolCmd ae2fVK_AnnMlpDescPoolCmd
Definition Mlp.h:28
ae2fVK_AnnSlpCreatDescPool_t ae2fVK_AnnMlpCreatDescPool_t
Definition Mlp.h:30
ae2fVK_AnnSlpDescPool ae2fVK_AnnMlpDescPool
Definition Mlp.h:27
#define __ae2fVK_AnnSlpMkCLSPVVerbose_imp(r_handle, ir_err, i_first, i_second, i_third)
Definition Slp.auto.h:760
#define __ae2fVK_AnnSlpMapRangedGeneric_imp(T, v_vkmapmemrange, iv_slp, r_err, r_ptr, i_off, i_sz)
Definition Slp.auto.h:834
#define __ae2fVK_AnnSlpMkFndMemProp_imp(CMDONERR, r_memtypeidx, v_errbit, memtypeidx_invalid_minus_one, vkpropflag_req, vkphydevmemprops)
Definition Slp.auto.h:35
#define __ae2fVK_AnnSlpMkCreatBuf(CMDONERR, sz, r_vkres, r_vkbuf, v_vkbufcreatinfo, v_reterr, vkbufuseflags, vksharemode, vkdev, vkalloccalls)
Definition Slp.auto.h:66
#define __ae2fVK_AnnSlpMkLoadPipeCreat_imp(CMDONERR, r_reterr, pipecreat, pipelayout, shadermod, entrypoint, idx_pipe, idx_pipelayout)
Definition Slp.auto.h:209
#define __ae2fVK_AnnSlpCreatDescPoolVerbose_imp(v_vkdescpoolcreatinfo, v_vkdescpoolsz, r_vkdescpool, r_reterr, r_vkres, i_vkdev, i_vkptrAlloc, i_vkdescpoolcreatflags, i_vkdesctype, i_vkdescpoolsz_count, i_vkmaxdescsets)
Definition Slp.auto.h:322
#define __ae2fVK_AnnSlpMkOnePipeLayoutVerbose_imp(CMDONERR, v_vkpushconstrange, v_vkpipelayoutcreatinfo, r_reterr, iv_slpptr, idx, szrequired, vkalloccalls, vkdev)
Definition Slp.auto.h:248
#define __ae2fVK_AnnSlpUnMap_imp(slp)
Definition Slp.auto.h:895
#define __ae2fVK_AnnSlpUnMapRanged_imp(v_out, vi_slp, i_off, i_sz)
Definition Slp.auto.h:907
#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)
Definition Slp.auto.h:110
#define __ae2f_MACRO_GENERATED
Definition Mlp.auto.h:2
#define __ae2f_AnnMlpMk_imp(...)
Definition Mlp.auto.h:315
#define __ae2f_AnnSlpMk_imp(...)
Definition Slp.auto.h:232
#define ae2f_MAC()
delta to delta
Definition mac.h:4
ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const iv_bias_opt
Definition Mlp.def.cc:49
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
Definition Mlp.def.cc:71
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
Definition Mlp.def.cc:69
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
Definition Mlp.def.cc:58
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
Definition Mlp.def.cc:65
ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const ae2f_opt ae2f_float_t *const iv_outstream_opt
Definition Mlp.def.cc:50
ae2fVK_AnnMlp ae2f_err_t ae2f_float_t ae2f_float_t * r_ptrbias
Definition Mlp.def.cc:652
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
Definition Mlp.def.cc:51
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
Definition Mlp.def.cc:53
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
Definition Mlp.def.cc:61
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
Definition Mlp.def.cc:66
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
Definition Mlp.def.cc:76
ae2f_opt ae2f_float_t *const iv_weight_opt
Definition Mlp.def.cc:48
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
Definition Mlp.def.cc:68
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
Definition Mlp.def.cc:57
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
Definition Mlp.def.cc:60
ae2fVK_AnnMlp iv_mlp
Definition Mlp.def.cc:585
ae2fVK_AnnMlp ae2f_err_t ae2f_float_t * r_ptr
Definition Mlp.def.cc:589
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
Definition Mlp.def.cc:73
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
Definition Mlp.def.cc:55
ae2fVK_AnnMlp ae2f_err_t r_err
Definition Mlp.def.cc:586
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
Definition Mlp.def.cc:54
ae2fVK_AnnMlp ae2f_err_t ae2f_float_t * r_ptrweight
Definition Mlp.def.cc:649
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
Definition Mlp.def.cc:63