ae2f_docs
Mlp.def.cc File Reference
#include <ae2fVK/Ann/Mlp.h>
#include <ae2fVK/Ann/Mlp.auto.h>
#include <ae2fVK/Ann/MlpSHADER.auto.h>
#include <ae2fVK/Ann/Slp.auto.h>
#include <ae2f/Macro.h>
#include <stdlib.h>
#include <limits.h>
#include <string.h>
#include <assert.h>

Go to the source code of this file.

Functions

 ae2f_MAC () _ae2fVK_AnnMlpMk_imp(ae2fVK_AnnMlpMk_t v_mk
 Make MLP with OpenCL compute shader.
 assert (i_len_count > 2)
 while ((v_mk).m_U1.m_i-- &&(i_len)[(v_mk).m_U1.m_i]<=UINT32_MAX)
 if ((v_mk).m_U1.m_i !=ae2f_static_cast(size_t, -1))
 __ae2f_AnnMlpMk_imp ((v_mk).m_U0.m_mk, i_len_count, i_len, i_len_swap, i_act, i_actderiv, i_lossderiv, iv_deltastream_opt, iv_outstream_opt, iv_weight_opt, iv_bias_opt, i_learningrate, i_learningrate_bias,((i_prm_offset)+sizeof(ae2fVK_AnnMlp) - sizeof(ae2f_AnnMlp)), i_extra)
 unless ((v_mk).m_U0.m_mkswap.m_mkbase)
 if ((v_mk).m_ret.m_err)
 unless ((i_vkdev))
 assert ((v_mk).m_U0.m_mk.m_outc==(v_mk).m_U0.m_mkswap.m_mkbase->m_mlp.m_outc)
 __ae2fVK_AnnSlpMkAllocVKMem_imp (break, __ae2fVK_AnnMlpGlobMemSz(i_len_count,(v_mk).m_U0.m_mk.m_outc),(v_mk).m_U0.m_mkswap.m_mkbase->m_vkres,(v_mk).m_U0.m_mkswap.m_mkbase->m_vkglobbuf,(v_mk).m_U0.m_mkswap.m_mkbase->m_vkglobdevmem,(v_mk).m_ret.m_err,(v_mk).m_U1.m_vkbufcreatinfo,(v_mk).m_U1.m_vkmemallocinfo, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, VK_SHARING_MODE_EXCLUSIVE,(v_mk).m_U0.m_mkswap.m_mkbase->m_vkdev,(v_mk).m_U2.m_vkmemreqs,(iv_vkalloccalls),(v_mk).m_U3.m_vkmemtypeidx, UCHAR_MAX, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, i_vkmemprops)
 __ae2fVK_AnnMlpMapRangedGeneric_imp (ae2f_float_t,(v_mk).m_U1.m_map,(*(v_mk).m_U0.m_mkswap.m_mkbase),(v_mk).m_ret.m_err,(v_mk).m_U3.m_mapped, 0,(v_mk).m_U2.m_i)
 unless ((v_mk).m_U3.m_mapped)
 while ((v_mk).m_U2.m_i--)
 __ae2fVK_AnnMlpUnMapRanged_imp ((v_mk).m_U1.m_unmap, *(v_mk).m_U0.m_mkswap.m_mkbase, 0,((i_len_count) *sizeof(uint32_t)))
 __ae2fVK_AnnSlpMkAllocVKMem_imp (break,(((v_mk).m_U0.m_mk.m_mkbase->m_outc *((v_mk).m_U0.m_mk.m_mkbase->m_depth+2)) *sizeof(ae2f_float_t)),(v_mk).m_U0.m_mkswap.m_mkbase->m_vkres,(v_mk).m_U0.m_mkswap.m_mkbase->m_vklocbuf,(v_mk).m_U0.m_mkswap.m_mkbase->m_vklocdevmem,(v_mk).m_ret.m_err,(v_mk).m_U1.m_vkbufcreatinfo,(v_mk).m_U1.m_vkmemallocinfo, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, VK_SHARING_MODE_EXCLUSIVE,(v_mk).m_U0.m_mkswap.m_mkbase->m_vkdev,(v_mk).m_U2.m_vkmemreqs,(iv_vkalloccalls),(v_mk).m_U3.m_vkmemtypeidx, UCHAR_MAX, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, i_vkmemprops)
 if ((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres)
 if (((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres=vkCreateDescriptorSetLayout((i_vkdev), &(v_mk).m_U2.m_vkdescsetlayoutcreatinfo,(iv_vkalloccalls),(v_mk).m_U0.m_mkswap.m_mkbase->m_vkdescsetlayout)) !=VK_SUCCESS)
 if (!(v_mk).m_U0.m_mkswap.m_mkbase->m_vkdescsetlayout[0])
 __ae2fVK_AnnSlpMkOnePipeLayoutVerbose_imp (break,(v_mk).m_U1.m_vkpushconstrange,(v_mk).m_U2.m_vkpipelayoutcreatinfo,(v_mk).m_ret.m_err,(v_mk).m_U0.m_mkswap.m_mkbase, ae2fVK_eAnnMlpPipeLayouts_kPredict, sizeof(uint32_t), iv_vkalloccalls, i_vkdev)
 if ((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres !=VK_SUCCESS)
 __ae2fVK_AnnSlpMkOnePipeLayoutVerbose_imp (break,(v_mk).m_U1.m_vkpushconstrange,(v_mk).m_U2.m_vkpipelayoutcreatinfo,(v_mk).m_ret.m_err,(v_mk).m_U0.m_mkswap.m_mkbase, ae2fVK_eAnnMlpPipeLayouts_kTrain, sizeof(uint32_t)+(sizeof(ae2f_float_t) *2),(iv_vkalloccalls),(i_vkdev))
 assert (i_vkcldefinition)
 assert (i_vkcldeclaration)
 unless ((v_mk).m_U1.m_clsrc_v)
 if (((v_mk).m_U4.m_clspverror=clspvCompileFromSourcesString(1, NULL, &(v_mk).m_U1.m_clsrc, "" "-pod-pushconstant " "-cl-fast-relaxed-math " "-cl-single-precision-constant", ae2f_const_cast(char **, ae2f_reinterpret_cast(const char **, &(v_mk).m_U2.m_vkshadermodcreatinfo.pCode)), &(v_mk).m_U2.m_vkshadermodcreatinfo.codeSize, &(v_mk).m_U3.m_cllog)) !=CLSPV_SUCCESS)
 unless ((v_mk).m_U2.m_vkshadermodcreatinfo.pCode)
 free ((v_mk).m_U1.m_clsrc_v)
 if ((((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres=vkCreateShaderModule((i_vkdev), &(v_mk).m_U2.m_vkshadermodcreatinfo,(iv_vkalloccalls), &(v_mk).m_U0.m_mkswap.m_mkbase->m_vkshadermodule)) !=VK_SUCCESS))
 unless ((v_mk).m_U0.m_mkswap.m_mkbase->m_vkshadermodule)
 free (ae2f_const_cast(uint32_t *,(v_mk).m_U2.m_vkshadermodcreatinfo.pCode))
 free ((v_mk).m_U3.m_cllog)
 __ae2fVK_AnnSlpMkLoadPipeCreat_imp (break,(v_mk).m_ret.m_err,(v_mk).m_U1.m_vkcomputepipecreatinfo,(v_mk).m_U0.m_mkswap.m_mkbase->m_vkpipelayout,(v_mk).m_U0.m_mkswap.m_mkbase->m_vkshadermodule, "kPredict", ae2fVK_eAnnMlpPipes_kPredict, ae2fVK_eAnnMlpPipeLayouts_kPredict)
 __ae2fVK_AnnSlpMkLoadPipeCreat_imp (break,(v_mk).m_ret.m_err,(v_mk).m_U1.m_vkcomputepipecreatinfo,(v_mk).m_U0.m_mkswap.m_mkbase->m_vkpipelayout,(v_mk).m_U0.m_mkswap.m_mkbase->m_vkshadermodule, "kPredictStream", ae2fVK_eAnnMlpPipes_kPredictStream, ae2fVK_eAnnMlpPipeLayouts_kPredict)
 __ae2fVK_AnnSlpMkLoadPipeCreat_imp (break,(v_mk).m_ret.m_err,(v_mk).m_U1.m_vkcomputepipecreatinfo,(v_mk).m_U0.m_mkswap.m_mkbase->m_vkpipelayout,(v_mk).m_U0.m_mkswap.m_mkbase->m_vkshadermodule, "kFollow", ae2fVK_eAnnMlpPipes_kFollow, ae2fVK_eAnnMlpPipeLayouts_kTrain)
 __ae2fVK_AnnSlpMkLoadPipeCreat_imp (break,(v_mk).m_ret.m_err,(v_mk).m_U1.m_vkcomputepipecreatinfo,(v_mk).m_U0.m_mkswap.m_mkbase->m_vkpipelayout,(v_mk).m_U0.m_mkswap.m_mkbase->m_vkshadermodule, "kTrainAuto", ae2fVK_eAnnMlpPipes_kTrainAuto, ae2fVK_eAnnMlpPipeLayouts_kTrain)
 if (((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres=vkCreateComputePipelines((i_vkdev), VK_NULL_HANDLE, ae2fVK_eAnnMlpPipes_LEN,(v_mk).m_U1.m_vkcomputepipecreatinfo,(iv_vkalloccalls),(v_mk).m_U0.m_mkswap.m_mkbase->m_vkpipeline)) !=VK_SUCCESS)
 assert ((v_mk).m_ret.m_err==ae2f_errGlob_OK)
 assert ((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres==VK_SUCCESS)
 while (0)

Variables

ae2f_opt ae2f_float_t *const iv_weight_opt
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 iv_outstream_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 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 i_len
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
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 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 i_act
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 i_lossderiv
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 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 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 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 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 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 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
 do
v_mk m_U0 m_mkswap m_mkbase m_vkres = VK_SUCCESS
v_mk m_U0 m_mkswap m_mkbase m_vkdev = (i_vkdev)
v_mk m_U0 m_mkswap m_mkbase m_vkalloccalls = (iv_vkalloccalls)
v_mk m_U2 m_i = (i_len_count)
v_mk m_U1 m_vkdescsetlayoutbind[0] descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
v_mk m_U1 m_vkdescsetlayoutbind[0] descriptorCount = 1
v_mk m_U1 m_vkdescsetlayoutbind[0] pImmutableSamplers = NULL
v_mk m_U1 m_vkdescsetlayoutbind[0] stageFlags = VK_SHADER_STAGE_COMPUTE_BIT
v_mk m_U1 m_vkdescsetlayoutbind [1] = (v_mk).m_U1.m_vkdescsetlayoutbind[0]
v_mk m_U1 m_vkdescsetlayoutbind[0] binding = 0
v_mk m_U2 m_vkdescsetlayoutcreatinfo sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
v_mk m_U2 m_vkdescsetlayoutcreatinfo pNext = NULL
v_mk m_U2 m_vkdescsetlayoutcreatinfo bindingCount = 2
v_mk m_U2 m_vkdescsetlayoutcreatinfo pBindings = (v_mk).m_U1.m_vkdescsetlayoutbind
v_mk m_U2 m_vkdescsetlayoutcreatinfo flags = 0
v_mk m_U1 m_vkpushconstrange offset = 0
v_mk m_U1 m_vkpushconstrange size = 0
v_mk m_U2 m_vkpipelayoutcreatinfo pPushConstantRanges = &(v_mk).m_U1.m_vkpushconstrange
v_mk m_U2 m_vkpipelayoutcreatinfo pushConstantRangeCount = 1
v_mk m_U2 m_vkpipelayoutcreatinfo setLayoutCount = 1
v_mk m_U2 m_vkpipelayoutcreatinfo pSetLayouts = (v_mk).m_U0.m_mkswap.m_mkbase->m_vkdescsetlayout
ae2fVK_AnnMlp iv_mlp
ae2fVK_AnnMlp ae2f_err_t r_err
ae2fVK_AnnMlp ae2f_err_t ae2f_float_tr_ptr
ae2fVK_AnnMlp ae2f_err_t ae2f_float_tr_ptrweight
ae2fVK_AnnMlp ae2f_err_t ae2f_float_t ae2f_float_tr_ptrbias

Function Documentation

◆ __ae2f_AnnMlpMk_imp()

__ae2f_AnnMlpMk_imp ( (v_mk).m_U0. m_mk,
i_len_count ,
i_len ,
i_len_swap ,
i_act ,
i_actderiv ,
i_lossderiv ,
iv_deltastream_opt ,
iv_outstream_opt ,
iv_weight_opt ,
iv_bias_opt ,
i_learningrate ,
i_learningrate_bias ,
((i_prm_offset)+sizeof(ae2fVK_AnnMlp) - sizeof(ae2f_AnnMlp)) ,
i_extra  )

◆ __ae2fVK_AnnMlpMapRangedGeneric_imp()

__ae2fVK_AnnMlpMapRangedGeneric_imp ( ae2f_float_t ,
(v_mk).m_U1. m_map,
(*(v_mk).m_U0.m_mkswap.m_mkbase) ,
(v_mk).m_ret. m_err,
(v_mk).m_U3. m_mapped,
0 ,
(v_mk).m_U2. m_i )

◆ __ae2fVK_AnnMlpUnMapRanged_imp()

__ae2fVK_AnnMlpUnMapRanged_imp ( (v_mk).m_U1. m_unmap,
*(v_mk).m_U0.m_mkswap. m_mkbase,
0 ,
((i_len_count) *sizeof(uint32_t))  )

◆ __ae2fVK_AnnSlpMkAllocVKMem_imp() [1/2]

__ae2fVK_AnnSlpMkAllocVKMem_imp ( break ,
__ae2fVK_AnnMlpGlobMemSz(i_len_count,(v_mk).m_U0.m_mk.m_outc) ,
(v_mk).m_U0.m_mkswap.m_mkbase-> m_vkres,
(v_mk).m_U0.m_mkswap.m_mkbase-> m_vkglobbuf,
(v_mk).m_U0.m_mkswap.m_mkbase-> m_vkglobdevmem,
(v_mk).m_ret. m_err,
(v_mk).m_U1. m_vkbufcreatinfo,
(v_mk).m_U1. m_vkmemallocinfo,
VK_BUFFER_USAGE_STORAGE_BUFFER_BIT ,
VK_SHARING_MODE_EXCLUSIVE ,
(v_mk).m_U0.m_mkswap.m_mkbase-> m_vkdev,
(v_mk).m_U2. m_vkmemreqs,
(iv_vkalloccalls) ,
(v_mk).m_U3. m_vkmemtypeidx,
UCHAR_MAX ,
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT ,
i_vkmemprops  )

Global memory allocation

Parameters
m_vkglobdevmemr_vkdevmem
m_errv_errbit
m_vkbufcreatinfov_vkbufcreatinfo

◆ __ae2fVK_AnnSlpMkAllocVKMem_imp() [2/2]

__ae2fVK_AnnSlpMkAllocVKMem_imp ( break ,
(((v_mk).m_U0.m_mk.m_mkbase->m_outc *((v_mk).m_U0.m_mk.m_mkbase->m_depth+2)) *sizeof(ae2f_float_t)) ,
(v_mk).m_U0.m_mkswap.m_mkbase-> m_vkres,
(v_mk).m_U0.m_mkswap.m_mkbase-> m_vklocbuf,
(v_mk).m_U0.m_mkswap.m_mkbase-> m_vklocdevmem,
(v_mk).m_ret. m_err,
(v_mk).m_U1. m_vkbufcreatinfo,
(v_mk).m_U1. m_vkmemallocinfo,
VK_BUFFER_USAGE_STORAGE_BUFFER_BIT ,
VK_SHARING_MODE_EXCLUSIVE ,
(v_mk).m_U0.m_mkswap.m_mkbase-> m_vkdev,
(v_mk).m_U2. m_vkmemreqs,
(iv_vkalloccalls) ,
(v_mk).m_U3. m_vkmemtypeidx,
UCHAR_MAX ,
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT ,
i_vkmemprops  )

Local memory allocation

Parameters
m_vklocdevmemr_vkdevmem
m_errv_errbit
m_vkbufcreatinfov_vkbufcreatinfo

◆ __ae2fVK_AnnSlpMkLoadPipeCreat_imp() [1/4]

__ae2fVK_AnnSlpMkLoadPipeCreat_imp ( break ,
(v_mk).m_ret. m_err,
(v_mk).m_U1. m_vkcomputepipecreatinfo,
(v_mk).m_U0.m_mkswap.m_mkbase-> m_vkpipelayout,
(v_mk).m_U0.m_mkswap.m_mkbase-> m_vkshadermodule,
"kFollow" ,
ae2fVK_eAnnMlpPipes_kFollow ,
ae2fVK_eAnnMlpPipeLayouts_kTrain  )

◆ __ae2fVK_AnnSlpMkLoadPipeCreat_imp() [2/4]

__ae2fVK_AnnSlpMkLoadPipeCreat_imp ( break ,
(v_mk).m_ret. m_err,
(v_mk).m_U1. m_vkcomputepipecreatinfo,
(v_mk).m_U0.m_mkswap.m_mkbase-> m_vkpipelayout,
(v_mk).m_U0.m_mkswap.m_mkbase-> m_vkshadermodule,
"kPredict" ,
ae2fVK_eAnnMlpPipes_kPredict ,
ae2fVK_eAnnMlpPipeLayouts_kPredict  )

◆ __ae2fVK_AnnSlpMkLoadPipeCreat_imp() [3/4]

__ae2fVK_AnnSlpMkLoadPipeCreat_imp ( break ,
(v_mk).m_ret. m_err,
(v_mk).m_U1. m_vkcomputepipecreatinfo,
(v_mk).m_U0.m_mkswap.m_mkbase-> m_vkpipelayout,
(v_mk).m_U0.m_mkswap.m_mkbase-> m_vkshadermodule,
"kPredictStream" ,
ae2fVK_eAnnMlpPipes_kPredictStream ,
ae2fVK_eAnnMlpPipeLayouts_kPredict  )

◆ __ae2fVK_AnnSlpMkLoadPipeCreat_imp() [4/4]

__ae2fVK_AnnSlpMkLoadPipeCreat_imp ( break ,
(v_mk).m_ret. m_err,
(v_mk).m_U1. m_vkcomputepipecreatinfo,
(v_mk).m_U0.m_mkswap.m_mkbase-> m_vkpipelayout,
(v_mk).m_U0.m_mkswap.m_mkbase-> m_vkshadermodule,
"kTrainAuto" ,
ae2fVK_eAnnMlpPipes_kTrainAuto ,
ae2fVK_eAnnMlpPipeLayouts_kTrain  )

◆ __ae2fVK_AnnSlpMkOnePipeLayoutVerbose_imp() [1/2]

__ae2fVK_AnnSlpMkOnePipeLayoutVerbose_imp ( break ,
(v_mk).m_U1. m_vkpushconstrange,
(v_mk).m_U2. m_vkpipelayoutcreatinfo,
(v_mk).m_ret. m_err,
(v_mk).m_U0.m_mkswap. m_mkbase,
ae2fVK_eAnnMlpPipeLayouts_kPredict ,
sizeof(uint32_t) ,
iv_vkalloccalls ,
i_vkdev  )

◆ __ae2fVK_AnnSlpMkOnePipeLayoutVerbose_imp() [2/2]

__ae2fVK_AnnSlpMkOnePipeLayoutVerbose_imp ( break ,
(v_mk).m_U1. m_vkpushconstrange,
(v_mk).m_U2. m_vkpipelayoutcreatinfo,
(v_mk).m_ret. m_err,
(v_mk).m_U0.m_mkswap. m_mkbase,
ae2fVK_eAnnMlpPipeLayouts_kTrain ,
sizeof(uint32_t)+(sizeof(ae2f_float_t) *2) ,
(iv_vkalloccalls) ,
(i_vkdev)  )

◆ ae2f_MAC()

ae2f_MAC ( )

Make MLP with OpenCL compute shader.

The shader itself is incomplete.
For using it you will need to define three macros as function.
Below is the required snippet.

#define ACT(const ae2f_float_t) -> ae2f_float_t
#define ACT_DERIV(const ae2f_float_t) -> ae2f_float_t
#define LOSS_DERIV( ae2f_float_t* retval const ae2f_float_t* const out , const ae2f_float_t* const out_desired , const size_t index , const size_t length_out_goal );

Parameters
vkcldeclaration
vkcldefinition

Definition at line 509 of file Mlp.def.cc.

◆ assert() [1/6]

assert ( (v_mk).m_ret. m_err = =ae2f_errGlob_OK)

◆ assert() [2/6]

assert ( (v_mk).m_U0.m_mk. m_outc = =(v_mk).m_U0.m_mkswap.m_mkbase->m_mlp.m_outc)

◆ assert() [3/6]

assert ( (v_mk).m_U0.m_mkswap.m_mkbase-> m_vkres = =VK_SUCCESS)

◆ assert() [4/6]

assert ( i_len_count ,
2  )

◆ assert() [5/6]

assert ( i_vkcldeclaration )

◆ assert() [6/6]

assert ( i_vkcldefinition )

◆ free() [1/3]

free ( (v_mk).m_U1. m_clsrc_v)

◆ free() [2/3]

free ( (v_mk).m_U3. m_cllog)

◆ free() [3/3]

◆ if() [1/9]

if ( !(v_mk).m_U0.m_mkswap.m_mkbase-> m_vkdescsetlayout[0])

Definition at line 250 of file Mlp.def.cc.

◆ if() [2/9]

if ( (((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres=vkCreateShaderModule((i_vkdev), &(v_mk).m_U2.m_vkshadermodcreatinfo,(iv_vkalloccalls), &(v_mk).m_U0.m_mkswap.m_mkbase->m_vkshadermodule)) !=VK_SUCCESS) )

Definition at line 380 of file Mlp.def.cc.

◆ if() [3/9]

if ( ((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres=vkCreateComputePipelines((i_vkdev), VK_NULL_HANDLE, ae2fVK_eAnnMlpPipes_LEN,(v_mk).m_U1.m_vkcomputepipecreatinfo,(iv_vkalloccalls),(v_mk).m_U0.m_mkswap.m_mkbase->m_vkpipeline)) ! = VK_SUCCESS)

Definition at line 468 of file Mlp.def.cc.

◆ if() [4/9]

if ( ((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres=vkCreateDescriptorSetLayout((i_vkdev), &(v_mk).m_U2.m_vkdescsetlayoutcreatinfo,(iv_vkalloccalls),(v_mk).m_U0.m_mkswap.m_mkbase->m_vkdescsetlayout)) ! = VK_SUCCESS)

Definition at line 239 of file Mlp.def.cc.

◆ if() [5/9]

if ( ((v_mk).m_U4.m_clspverror=clspvCompileFromSourcesString(1, NULL, &(v_mk).m_U1.m_clsrc, "" "-pod-pushconstant " "-cl-fast-relaxed-math " "-cl-single-precision-constant", ae2f_const_cast(char **, ae2f_reinterpret_cast(const char **, &(v_mk).m_U2.m_vkshadermodcreatinfo.pCode)), &(v_mk).m_U2.m_vkshadermodcreatinfo.codeSize, &(v_mk).m_U3.m_cllog)) ! = CLSPV_SUCCESS)

Definition at line 323 of file Mlp.def.cc.

◆ if() [6/9]

if ( (v_mk).m_ret. m_err)

Definition at line 113 of file Mlp.def.cc.

◆ if() [7/9]

if ( (v_mk).m_U0.m_mkswap.m_mkbase->m_vkres ! = VK_SUCCESS)

Definition at line 283 of file Mlp.def.cc.

◆ if() [8/9]

if ( (v_mk).m_U0.m_mkswap.m_mkbase-> m_vkres)

Definition at line 214 of file Mlp.def.cc.

◆ if() [9/9]

if ( (v_mk).m_U1.m_i ! = ae2f_static_cast(size_t, -1))

Definition at line 83 of file Mlp.def.cc.

◆ unless() [1/6]

unless ( (i_vkdev) )

Definition at line 119 of file Mlp.def.cc.

◆ unless() [2/6]

unless ( (v_mk).m_U0.m_mkswap. m_mkbase)

Definition at line 107 of file Mlp.def.cc.

◆ unless() [3/6]

unless ( (v_mk).m_U0.m_mkswap.m_mkbase-> m_vkshadermodule)

Definition at line 392 of file Mlp.def.cc.

◆ unless() [4/6]

unless ( (v_mk).m_U1. m_clsrc_v)

Definition at line 317 of file Mlp.def.cc.

◆ unless() [5/6]

unless ( (v_mk).m_U2.m_vkshadermodcreatinfo. pCode)

Definition at line 367 of file Mlp.def.cc.

◆ unless() [6/6]

unless ( (v_mk).m_U3. m_mapped)

Definition at line 172 of file Mlp.def.cc.

◆ while() [1/3]

while ( (v_mk).m_U1.m_i-- &&(i_len)<= UINT32_MAX[(v_mk).m_U1.m_i])

Definition at line 82 of file Mlp.def.cc.

◆ while() [2/3]

while ( (v_mk).m_U2.m_i-- )

Definition at line 178 of file Mlp.def.cc.

◆ while() [3/3]

while ( 0 )

Variable Documentation

◆ binding

v_mk m_U2 m_S0 m_loc binding = 0

Definition at line 228 of file Mlp.def.cc.

◆ bindingCount

v_mk m_U1 m_vkdescsetlayoutcreatinfo bindingCount = 2

Definition at line 234 of file Mlp.def.cc.

◆ descriptorCount

v_mk m_U2 m_S0 m_glob descriptorCount = 1

Definition at line 221 of file Mlp.def.cc.

◆ descriptorType

v_mk m_U1 m_vkdescsetlayoutbind [0] descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER

Definition at line 219 of file Mlp.def.cc.

◆ do

do
Initial value:
{
(v_mk).m_U1.m_i = (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 i_len_count
Definition Mlp.def.cc:53

Definition at line 80 of file Mlp.def.cc.

◆ flags

v_mk m_U2 m_vkshadermodcreatinfo flags = 0

Definition at line 237 of file Mlp.def.cc.

◆ i_act

Definition at line 60 of file Mlp.def.cc.

◆ i_actderiv

Definition at line 61 of file Mlp.def.cc.

◆ 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 i_extra

Definition at line 58 of file Mlp.def.cc.

◆ i_learningrate

Definition at line 65 of file Mlp.def.cc.

◆ i_learningrate_bias

Definition at line 66 of file Mlp.def.cc.

◆ i_len

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 at line 54 of file Mlp.def.cc.

◆ i_len_count

Definition at line 53 of file Mlp.def.cc.

◆ i_len_swap

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 at line 55 of file Mlp.def.cc.

◆ i_lossderiv

Definition at line 63 of file Mlp.def.cc.

◆ 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 i_prm_offset

Definition at line 57 of file Mlp.def.cc.

◆ 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 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 at line 73 of file Mlp.def.cc.

◆ i_vkcldefinition

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
Initial value:
{
(v_mk).m_ret.m_err = ae2f_errGlob_OK
v_mapsz m_ret
Definition MMap.def.c:134
#define ae2f_errGlob_OK
The Operation you've wanted went successful.
Definition errGlob.h:23

Definition at line 74 of file Mlp.def.cc.

◆ i_vkdev

Definition at line 68 of file Mlp.def.cc.

◆ 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 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 at line 69 of file Mlp.def.cc.

◆ iv_bias_opt

ae2f_opt ae2f_float_t* const ae2f_opt ae2f_float_t* const iv_bias_opt

Definition at line 49 of file Mlp.def.cc.

◆ 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 iv_deltastream_opt

Definition at line 51 of file Mlp.def.cc.

◆ iv_mlp

ae2fVK_AnnMlp iv_mlp
Initial value:
{
v_unmap
, __ae2fVK_AnnMlpGoalOff((iv_mlp).m_mlp.m_depth, (iv_mlp).m_mlp.m_outc)
, __ae2fVK_AnnMlpGoalSz((iv_mlp).m_map.m_depth, (iv_mlp).m_mlp.m_outc)
)
#define __ae2fVK_AnnMlpGoalSz(i_depth, i_outc)
Definition Mlp.core.h:151
#define __ae2fVK_AnnMlpGoalOff(i_depth, i_outc)
Definition Mlp.core.h:154
#define __ae2fVK_AnnSlpUnMapRanged_imp(v_out, vi_slp, i_off, i_sz)
Definition Slp.auto.h:907
ae2fVK_AnnMlp iv_mlp
Definition Mlp.def.cc:585

Definition at line 585 of file Mlp.def.cc.

◆ iv_outstream_opt

ae2f_opt ae2f_float_t* const ae2f_opt ae2f_float_t* const ae2f_opt ae2f_float_t* const iv_outstream_opt

Definition at line 50 of file Mlp.def.cc.

◆ 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 ae2f_opt VkAllocationCallbacks* const iv_vkalloccalls

Definition at line 71 of file Mlp.def.cc.

◆ iv_weight_opt

ae2f_opt ae2f_float_t* const iv_weight_opt

Definition at line 48 of file Mlp.def.cc.

◆ m_i

v_mk m_U2 m_i = (i_len_count)

Definition at line 177 of file Mlp.def.cc.

◆ m_vkalloccalls

v_mk m_U0 m_mkswap m_mkbase m_vkalloccalls = (iv_vkalloccalls)

Definition at line 124 of file Mlp.def.cc.

◆ m_vkdescsetlayoutbind

v_mk m_U1 m_vkdescsetlayoutbind = (v_mk).m_U1.m_vkdescsetlayoutbind[0]

Definition at line 225 of file Mlp.def.cc.

◆ m_vkdev

v_mk m_U0 m_mkswap m_mkbase m_vkdev = (i_vkdev)

Definition at line 123 of file Mlp.def.cc.

◆ m_vkres

v_mk m_U0 m_mkswap m_mkbase m_vkres = VK_SUCCESS

Definition at line 118 of file Mlp.def.cc.

◆ offset

v_mk m_U1 m_vkpushconstrange offset = 0

Definition at line 256 of file Mlp.def.cc.

◆ pBindings

v_mk m_U2 m_vkdescsetlayoutcreatinfo pBindings = (v_mk).m_U1.m_vkdescsetlayoutbind

Definition at line 235 of file Mlp.def.cc.

◆ pImmutableSamplers

v_mk m_U1 m_vkdescsetlayoutbind [0] pImmutableSamplers = NULL

Definition at line 222 of file Mlp.def.cc.

◆ pNext

v_cmdmk m_u0 m_vkcmdbufbeginfo pNext = NULL

Definition at line 233 of file Mlp.def.cc.

◆ pPushConstantRanges

v_mk m_U2 m_vkpipelayoutcreatinfo pPushConstantRanges = &(v_mk).m_U1.m_vkpushconstrange

Definition at line 262 of file Mlp.def.cc.

◆ pSetLayouts

v_mk m_U2 m_vkpipelayoutcreatinfo pSetLayouts = (v_mk).m_U0.m_mkswap.m_mkbase->m_vkdescsetlayout

Definition at line 268 of file Mlp.def.cc.

◆ pushConstantRangeCount

v_mk m_U2 m_vkpipelayoutcreatinfo pushConstantRangeCount = 1

Definition at line 264 of file Mlp.def.cc.

◆ r_err

ae2fVK_AnnMlp ae2f_err_t r_err

Definition at line 586 of file Mlp.def.cc.

◆ r_ptr

ae2fVK_AnnMlp ae2f_err_t ae2f_float_t * r_ptr
Initial value:
{
, v_map
, __ae2fVK_AnnMlpGoalOff((iv_mlp).m_mlp.m_depth, (iv_mlp).m_mlp.m_outc)
, __ae2fVK_AnnMlpGoalSz((iv_mlp).m_map.m_depth, (iv_mlp).m_mlp.m_outc)
)
ae2f_float ae2f_float_t
Definition Float.h:38
#define __ae2fVK_AnnSlpMapRangedGeneric_imp(T, v_vkmapmemrange, iv_slp, r_err, r_ptr, i_off, i_sz)
Definition Slp.auto.h:834
ae2fVK_AnnMlp ae2f_err_t ae2f_float_t * r_ptr
Definition Mlp.def.cc:589
ae2fVK_AnnMlp ae2f_err_t r_err
Definition Mlp.def.cc:586

Definition at line 587 of file Mlp.def.cc.

◆ r_ptrbias

ae2fVK_AnnMlp ae2f_err_t ae2f_float_t ae2f_float_t* r_ptrbias
Initial value:
{
, v_map
, sizeof(uint32_t) * (iv_mlp).m_mlp.m_depth
+ sizeof(ae2f_float_t) * (iv_mlp).m_mlp.m_outc * (iv_mlp).m_mlp.m_depth
, sizeof(ae2f_float_t) * (iv_mlp).m_mlp.m_outc * ((iv_mlp).m_mlp.m_outc + 1) * ((iv_mlp).m_mlp.m_depth - 1)
)
#define uint32_t
ae2fVK_AnnMlp ae2f_err_t ae2f_float_t * r_ptrweight
Definition Mlp.def.cc:649

Definition at line 650 of file Mlp.def.cc.

◆ r_ptrweight

ae2fVK_AnnMlp ae2f_err_t ae2f_float_t* r_ptrweight

Definition at line 649 of file Mlp.def.cc.

◆ setLayoutCount

v_mk m_U2 m_vkpipelayoutcreatinfo setLayoutCount = 1

Definition at line 265 of file Mlp.def.cc.

◆ size

v_mk m_U1 m_vkpushconstrange size = 0

Definition at line 257 of file Mlp.def.cc.

◆ stageFlags

v_mk m_U1 m_vkpushconstrange stageFlags = VK_SHADER_STAGE_COMPUTE_BIT

Definition at line 223 of file Mlp.def.cc.

◆ sType

v_cmdmk m_u0 m_vkcmdbufbeginfo sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO

Definition at line 231 of file Mlp.def.cc.