1#undef  __ae2f_MACRO_GENERATED 
    2#define __ae2f_MACRO_GENERATED  1
 
    3#ifndef ae2fVK_AnnSlpPool_h 
    6#define ae2fVK_AnnSlpPool_h 
   10#include <ae2f/Macro.h> 
   11#undef __ae2f_MACRO_GENERATED 
   12#define __ae2f_MACRO_GENERATED 1
 
   14#undef __ae2f_MACRO_GENERATED 
   15#define __ae2f_MACRO_GENERATED 1
 
   18#include <ae2fVK/Ann/Slp.h> 
   19#undef __ae2f_MACRO_GENERATED 
   20#define __ae2f_MACRO_GENERATED 1
 
   21#include <ae2fVK/Ann/SlpPool.auto.h> 
   22#undef __ae2f_MACRO_GENERATED 
   23#define __ae2f_MACRO_GENERATED 1
 
   26
   27
   28
   29
   30
   31#define __ae2fVK_AnnSlpDescPoolMkGeneric_imp( 
   40         i_vkdescpoolcreatflags, 
   44)\
   45{
   46    (r_pool).m_vkdescpool = 0
; 
   50              (v_descpool).m_U0.m_vkdescpoolcreatinfo 
   51            , (v_descpool).m_U0.m_vkdescpoolsz 
   52            , (r_pool).m_vkdescpool 
   56            , (iv_slp).m_vkalloccalls 
   57            , i_vkdescpoolcreatflags 
   59            , i_vkdescpoolsz_count 
   63    if((iv_slp).m_vkres != VK_SUCCESS) { 
   65        assert
(!"__ae2fVK_AnnSlpCreatDescPoolVerbose_imp has failed (Vulkan)"); 
   69        assert
(!"__ae2fVK_AnnSlpCreatDescPoolVerbose_imp has failed."); 
   71    unless((r_pool).m_vkdescpool) { 
   72        assert
(!"__ae2fVK_AnnSlpCreatDescPoolVerbose_imp went null."); 
   75}
   77#define __ae2fVK_AnnSlpDescPoolMk_imp( 
   86         i_vkdescpoolcreatflags, 
   88)\
   89{
   95            , i_vkdescpoolcreatflags 
   96            , VK_DESCRIPTOR_TYPE_STORAGE_BUFFER 
   99}
  102#define __ae2fVK_AnnSlpDescPoolClean_imp( 
  109)\
  110{
  111    vkDestroyDescriptorPool( 
  113            , (i_pool).m_vkdescpool 
  114            , (i_slp).m_vkalloccalls 
  116}
  119#define COMMANDONRECORDING 
  123
  124
  125#define __ae2fVK_AnnSlpDescPoolCmdMk_imp( 
  144)\
  145{
  146    assert
((iv_slp).m_vkres == VK_SUCCESS && "(iv_slp)'s state is bad."); 
  150    (v_cmdmk).m_u0.m_vkdescsetallocinfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO; 
  152    (v_cmdmk).m_u0.m_vkdescsetallocinfo.descriptorPool 
  153        = (i_pool).m_vkdescpool; 
  155    (v_cmdmk).m_u0.m_vkdescsetallocinfo.descriptorSetCount 
  158    (v_cmdmk).m_u0.m_vkdescsetallocinfo.pSetLayouts 
  159        = &(iv_slp).m_vkdescsetlayout[i_desclayout]; 
  161    (v_cmdmk).m_u0.m_vkdescsetallocinfo.pNext = NULL
; 
  163    assert
((iv_slp).m_vkdev); 
  164    assert
((v_cmdmk).m_u0.m_vkdescsetallocinfo.pSetLayouts); 
  165    assert
((v_cmdmk).m_u0.m_vkdescsetallocinfo.pSetLayouts[i_desclayout]); 
  166    assert
((v_cmdmk).m_u0.m_vkdescsetallocinfo.descriptorPool); 
  169        if (((iv_slp).m_vkres = vkAllocateDescriptorSets( 
  171                        , &(v_cmdmk).m_u0.m_vkdescsetallocinfo 
  172                        , &(r_cmd).m_vkdescset 
  175            assert
((r_cmd).m_vkdescset); 
  176            assert
(!"vkAllocateDescriptorSets has failed."); 
  180        unless((r_cmd).m_vkdescset) { 
  181            assert
(!"vkAllocateDescriptorSets went NULL."); 
  186        (v_cmdmk).m_u0.m_vkdescwrdescinfo.m_buf[0
] 
  187            .buffer = (iv_slp).m_vkglobbuf; 
  190        (v_cmdmk).m_u0.m_vkdescwrdescinfo.m_buf[0
] 
  194        (v_cmdmk).m_u0.m_vkdescwrdescinfo.m_buf[0
] 
  197        (v_cmdmk).m_u0.m_vkdescwrdescinfo.m_buf[1
] 
  198            .buffer = (iv_slp).m_vklocbuf; 
  201        (v_cmdmk).m_u0.m_vkdescwrdescinfo.m_buf[1
] 
  205        (v_cmdmk).m_u0.m_vkdescwrdescinfo.m_buf[1
] 
  209        (v_cmdmk).m_u0.m_vkdescwrdescinfo.m_wrset 
  210            .sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; 
  212        (v_cmdmk).m_u0.m_vkdescwrdescinfo.m_wrset 
  213            .dstSet = (r_cmd).m_vkdescset; 
  215        (v_cmdmk).m_u0.m_vkdescwrdescinfo.m_wrset 
  217        (v_cmdmk).m_u0.m_vkdescwrdescinfo.m_wrset 
  218            .dstArrayElement = 0
; 
  220        (v_cmdmk).m_u0.m_vkdescwrdescinfo.m_wrset 
  221            .descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; 
  223        (v_cmdmk).m_u0.m_vkdescwrdescinfo.m_wrset 
  224            .descriptorCount = (i_desccount); 
  226        (v_cmdmk).m_u0.m_vkdescwrdescinfo.m_wrset 
  227            .pBufferInfo = (v_cmdmk).m_u0.m_vkdescwrdescinfo.m_buf; 
  229        (v_cmdmk).m_u0.m_vkdescwrdescinfo.m_wrset.pNext = NULL
; 
  230        (v_cmdmk).m_u0.m_vkdescwrdescinfo.m_wrset.pImageInfo = NULL
; 
  232        vkUpdateDescriptorSets( 
  235                , &(v_cmdmk).m_u0.m_vkdescwrdescinfo.m_wrset 
  240        (v_cmdmk).m_u0.m_vkcmdbufbeginfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO; 
  241        (v_cmdmk).m_u0.m_vkcmdbufbeginfo.pInheritanceInfo = NULL
; 
  242        (v_cmdmk).m_u0.m_vkcmdbufbeginfo.flags = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER; 
  243        (v_cmdmk).m_u0.m_vkcmdbufbeginfo.pNext = NULL
; 
  245        if(((iv_slp).m_vkres = vkBeginCommandBuffer( 
  247                        , &(v_cmdmk).m_u0.m_vkcmdbufbeginfo 
  250            assert
(!"vkBeginCommandBuffer has failed."); 
  256                , VK_PIPELINE_BIND_POINT_COMPUTE 
  257                , (iv_slp).m_vkpipeline[i_pipe] 
  260        vkCmdBindDescriptorSets( 
  262                , VK_PIPELINE_BIND_POINT_COMPUTE 
  263                , (iv_slp).m_vkpipelayout[i_pipelayout] 
  266                , &(r_cmd).m_vkdescset 
  271        { COMMANDONRECORDING } 
  273        if(((iv_slp).m_vkres = vkEndCommandBuffer(i_vkcmdbuf)) != VK_SUCCESS) { 
  274            assert
(!"vkEndCommandBuffer has failed."); 
  279    if(((iv_slp).m_vkres != VK_SUCCESS)) 
  281}
  282#define __ae2fVK_AnnSlpDescPoolCmdClean_imp( 
  290)\
  291{
  292    if(((iv_slp).m_vkres = vkFreeDescriptorSets( 
  294                    , (i_pool).m_vkdescpool 
  296                    , &(i_cmd).m_vkdescset 
  298        assert
(!"vkFreeDescriptorSets has failed."); \ 
  299}
  301#define __ae2fVK_AnnSlpDescPoolCmdMkPredict_imp( 
  312)\
  313{
  319                        , (iv_slp).m_vkpipelayout[ae2fVK_eAnnSlpPipeLayouts_kPredict] 
  320                        , VK_SHADER_STAGE_COMPUTE_BIT 
  323                        , &(iv_slp).m_slp.m_Slp[0
].m_inc 
  328                        , (iv_slp).m_slp.m_Slp[0
].m_outc 
  329                        , (iv_slp).m_slp.m_Slp[0
].m_inc 
  347            , ae2fVK_eAnnSlpDescLayouts_kPredict  
  348            , ae2fVK_eAnnSlpPipes_kPredict  
  349            , ae2fVK_eAnnSlpPipeLayouts_kPredict  
  353}
  355#define __ae2fVK_AnnSlpDescPoolCmdMkTrain_imp( 
  366)\
  367{
  373                        , (iv_slp).m_vkpipelayout[ae2fVK_eAnnSlpPipeLayouts_kTrain] 
  374                        , VK_SHADER_STAGE_COMPUTE_BIT 
  376                        , sizeof(ae2f_float_t) 
  377                        , &(iv_slp).m_slp.m_learningrate 
  382                        , (iv_slp).m_vkpipelayout[ae2fVK_eAnnSlpPipeLayouts_kTrain] 
  383                        , VK_SHADER_STAGE_COMPUTE_BIT 
  384                        , sizeof(ae2f_float_t) 
  385                        , sizeof(ae2f_float_t) 
  386                        , &(iv_slp).m_slp.m_learningrate_bias 
  391                        , (iv_slp).m_slp.m_Slp[0
].m_outc 
  392                        , (iv_slp).m_slp.m_Slp[0
].m_inc 
  407        , sizeof(ae2f_float_t) * ((iv_slp).m_slp.m_Slp[0
].m_outc) 
  409        , ae2fVK_eAnnSlpDescLayouts_kTrain  
  410        , ae2fVK_eAnnSlpPipes_kTrain  
  411        , ae2fVK_eAnnSlpPipeLayouts_kTrain  
  415}
  419#undef  __ae2f_MACRO_GENERATED 
  421#define __ae2f_MACRO_GENERATED  0
 
#define ae2f_enumdef(name,...)
#define ae2f_structdef(key, name)
#define ae2f_const_cast(t, v)
#define ae2f_CastMerge(...)
simply merge all text inside the round bracket, counting them as a single text block.
#define ae2f_static_cast(t, v)
#define ae2f_reinterpret_cast(t, v)
#define unless(...)
Invokes when condition is false.
#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...
#define __ae2f_MACRO_GENERATED
#define __ae2fVK_AnnMlpOutStreamSz(i_depth, i_outc, i_weightc)
#define __ae2fVK_AnnMlpWeightOff(i_depth, i_outc, i_weightc)
#define __ae2fVK_AnnMlpUnMapRanged_imp
#define __ae2fVK_AnnMlpGoalOff(i_depth, i_outc, i_weightc)
#define __ae2fVK_AnnMlpMapRangedGeneric_imp
#define __ae2fVK_AnnMlpOutStreamOff(i_depth, i_outc, i_weightc)
#define __ae2fVK_AnnMlpMdlOff(...)
#define __ae2fVK_AnnMlpBiasSz(i_depth, i_outc, i_weightc)
#define __ae2fVK_AnnMlpMdlSz(i_depth,...)
#define __ae2fVK_AnnMlpGoalSz(i_depth, i_outc, i_weightc)
#define __ae2fVK_AnnMlpDeltaStreamOff(i_depth, i_outc, i_weightc)
#define __ae2fVK_AnnMlpGlobMemSz(i_depth, i_outc, i_weightc)
#define __ae2fVK_AnnMlpBiasOff(i_depth, i_outc, i_weightc)
#define __ae2fVK_AnnMlpDeltaStreamSz(i_depth, i_outc, i_weightc)
#define __ae2fVK_AnnMlpWeightSz(i_depth, i_outc, i_weightc)
#define __ae2fVK_AnnSlpGoalSz(i_inp, i_out)
#define __ae2fVK_AnnSlpGoalOff(i_inp, i_out)
#define __ae2fVK_AnnSlpDeltaOff_V(CLFLOAT, i_inp, i_out)
#define __ae2fVK_AnnSlpGlobSz_V(CLFLOAT, i_inp, i_out)
#define __ae2fVK_AnnSlpOutOff(i_inp, i_out)
#define __ae2fVK_AnnSlpOutSz_V(CLFLOAT, i_inp, i_out)
#define __ae2fVK_AnnSlpInpSz(i_inp,...)
#define __ae2fVK_AnnSlpInpSz_V(CLFLOAT, i_inp, i_out)
#define __ae2fVK_AnnSlpBiasSz(i_inp, i_out)
#define __ae2fVK_AnnSlpWeightSz(i_inp, i_out)
#define __ae2fVK_AnnSlpInpOff(i_inp, i_out)
#define __ae2fVK_AnnSlpGoalSz_V(CLFLOAT, i_inp, i_out)
#define __ae2fVK_AnnSlpDeltaSz_V(CLFLOAT, i_inp, i_out)
#define __ae2fVK_AnnSlpDeltaSz(i_inp, i_out)
#define __ae2fVK_AnnSlpBiasSz_V(CLFLOAT, i_inp, i_out)
#define __ae2fVK_AnnSlpInpOff_V(CLFLOAT, i_inp, i_out)
#define __ae2fVK_AnnSlpWeightSz_V(CLFLOAT, i_inp, i_out)
#define __ae2fVK_AnnSlpWeightOff(i_inp, i_out)
#define __ae2fVK_AnnSlpGlobSz(i_inp, i_out)
#define __ae2fVK_AnnSlpOutSz(i_inp, i_out)
#define __ae2fVK_AnnSlpWeightOff_V(CLFLOAT, i_inp, i_out)
#define __ae2fVK_AnnSlpOutOff_V(CLFLOAT, i_inp, i_out)
#define __ae2fVK_AnnSlpBiasOff_V(CLFLOAT, i_inp, i_out)
#define __ae2fVK_AnnSlpGoalOff_V(CLFLOAT, i_inp, i_out)
#define __ae2fVK_AnnSlpDeltaOff(i_inp, i_out)
#define ae2fVK_AnnMlpSHADER
#define __ae2fVK_AnnSlpDescPoolMkGeneric_imp(v_descpool, r_pool, r_reterr, iv_slp, i_vkdescpoolcreatflags, i_vkdesctype, i_vkdescpoolsz_count, i_vkmaxdescsets)
#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 __ae2fVK_AnnMlpMk_imp_V(cllocfloat_t, v_mk, iv_weight_opt, iv_bias_opt, iv_outstream_opt, iv_deltastream_opt, i_len_count, i_len, i_len_swap, i_prm_offset, i_extra, i_act, i_actderiv, i_lossderiv, i_learningrate, i_learningrate_bias, i_vkdev, i_vkmemprops, iv_vkalloccalls, i_vkcldeclaration, i_vkcldefinition)
#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_AnnSlpMkFndMemProp_imp(CMDONERR, r_memtypeidx, v_errbit, memtypeidx_invalid_minus_one, vkpropflag_req, vkphydevmemprops)
#define __ae2fVK_AnnSlpMkCreatBuf(CMDONERR, sz, r_vkres, r_vkbuf, v_vkbufcreatinfo, v_reterr, vkbufuseflags, vksharemode, vkdev, vkalloccalls)
#define __ae2fVK_AnnSlpMkLoadPipeCreat_imp(CMDONERR, r_reterr, pipecreat, pipelayout, shadermod, entrypoint, idx_pipe, idx_pipelayout)
#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)
#define __ae2fVK_AnnSlpMkOnePipeLayoutVerbose_imp(CMDONERR, v_vkpushconstrange, v_vkpipelayoutcreatinfo, r_reterr, iv_slpptr, idx, szrequired, vkalloccalls, vkdev)
#define __ae2fVK_AnnSlpUnMap_imp(slp)
#define __ae2fVK_AnnSlpUnMapRanged_imp(v_out, vi_slp, i_off, i_sz)
#define __ae2fVK_AnnSlpMk_imp_V(cllocfloat_t, v_mk, weight_opt, bias_opt, cache_opt, inc, outc, prm_offset, extra, act, actderiv, lossderiv, learningrate, learningrate_bias, vkdev, vkmemprops, vkalloccalls, vkcldeclaration, vkcldefinition)
#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_AnnMlpMk_imp(reg_mk, prm_depth, pprm_szvector, propptr_szswap_opt, lppfn_act_opt, lppfn_actderiv_opt, pfn_lossderiv, propptr_deltastream_opt, propptr_outcache_opt, propptr_weight_opt, propptr_bias_opt, prm_learningrate, prm_learningrate_bias, prm_offset_opt, prm_extra_opt)
Automatically allocates ae2f_AnnMlp and store its pointer at (reg_mk).m_mkbase.
#define __ae2f_AnnSlpMk_imp(...)