1#ifndef ae2fVK_Ann_Mlp_auto_h
3#if __ae2f_MACRO_GENERATED
4#define ae2fVK_Ann_Mlp_auto_h
7#include <ae2fVK/Ann/Mlp.h>
8#include <ae2fVK/Ann/Mlp.auto.h>
9#include <ae2fVK/Ann/MlpSHADER.auto.h>
10#include <ae2fVK/Ann/Slp.auto.h>
13#include <ae2f/Macro.h>
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
46 ae2fVK_AnnMlpMk_t v_mk,
82 while((v_mk).m_U1.m_i-- && (
i_len)[(v_mk).m_U1.m_i] <= UINT32_MAX) {}
84 assert(!
"`i_len` exceeds the expected size (4 bytes)");
103 , ((
i_prm_offset) +
sizeof(ae2fVK_AnnMlp) -
sizeof(ae2f_AnnMlp))
108 assert(!
"__ae2f_AnnMlpMk_imp went null");
113 if((v_mk).m_ret.m_err) {
114 assert(!
"__ae2f_AnnMlpMk_imp has failed.");
118 (v_mk).m_U0.m_mkswap.m_mkbase->m_vkres = VK_SUCCESS;
120 assert(!
"i_vkdev is null");
123 (v_mk).m_U0.m_mkswap.m_mkbase->m_vkdev = (
i_vkdev);
126 assert((v_mk).m_U0.m_mk.m_outc == (v_mk).m_U0.m_mkswap.m_mkbase->m_mlp.m_outc);
132 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkres
133 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkglobbuf
134 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkglobdevmem
136 , (v_mk).m_U1.m_vkbufcreatinfo
137 , (v_mk).m_U1.m_vkmemallocinfo
138 , VK_BUFFER_USAGE_STORAGE_BUFFER_BIT
139 , VK_SHARING_MODE_EXCLUSIVE
140 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkdev
141 , (v_mk).m_U2.m_vkmemreqs
143 , (v_mk).m_U3.m_vkmemtypeidx
145 , VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
150 (v_mk).m_U2.m_i = (
i_len_count) *
sizeof(uint32_t);
155 , (*(v_mk).m_U0.m_mkswap.m_mkbase)
157 , (v_mk).m_U3.m_mapped
162 if((v_mk).m_ret.m_err) {
163 assert(!
"__ae2fVK_AnnMlpMapRanged_imp has failed.");
166 , *(v_mk).m_U0.m_mkswap.m_mkbase
167 , 0, ((i_len_count) *
sizeof(uint32_t))
173 assert(!
"__ae2fVK_AnnMlpMapRanged_imp went null");
178 while((v_mk).m_U2.m_i--) {
180 = (
i_len)[(v_mk).m_U2.m_i];
185 , *(v_mk).m_U0.m_mkswap.m_mkbase
186 , 0, ((i_len_count) *
sizeof(uint32_t))
194 (v_mk).m_U0.m_mk.m_mkbase->m_outc *
195 ((v_mk).m_U0.m_mk.m_mkbase->m_depth + 2)
197 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkres
198 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vklocbuf
199 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vklocdevmem
201 , (v_mk).m_U1.m_vkbufcreatinfo
202 , (v_mk).m_U1.m_vkmemallocinfo
203 , VK_BUFFER_USAGE_STORAGE_BUFFER_BIT
204 , VK_SHARING_MODE_EXCLUSIVE
205 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkdev
206 , (v_mk).m_U2.m_vkmemreqs
208 , (v_mk).m_U3.m_vkmemtypeidx
210 , VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
214 if((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres) {
215 assert(!
"__ae2fVK_AnnSlpMkAllocVKMem_imp");
219 (v_mk).m_U1.m_vkdescsetlayoutbind[0].descriptorType
220 = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
221 (v_mk).m_U1.m_vkdescsetlayoutbind[0].descriptorCount = 1;
222 (v_mk).m_U1.m_vkdescsetlayoutbind[0].pImmutableSamplers = NULL;
223 (v_mk).m_U1.m_vkdescsetlayoutbind[0].stageFlags = VK_SHADER_STAGE_COMPUTE_BIT;
225 (v_mk).m_U1.m_vkdescsetlayoutbind[1]
226 = (v_mk).m_U1.m_vkdescsetlayoutbind[0];
228 (v_mk).m_U1.m_vkdescsetlayoutbind[0].binding = 0;
229 (v_mk).m_U1.m_vkdescsetlayoutbind[1].binding = 1;
231 (v_mk).m_U2.m_vkdescsetlayoutcreatinfo.sType
232 = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
233 (v_mk).m_U2.m_vkdescsetlayoutcreatinfo.pNext = NULL;
234 (v_mk).m_U2.m_vkdescsetlayoutcreatinfo.bindingCount = 2;
235 (v_mk).m_U2.m_vkdescsetlayoutcreatinfo.pBindings
236 = (v_mk).m_U1.m_vkdescsetlayoutbind;
237 (v_mk).m_U2.m_vkdescsetlayoutcreatinfo.flags = 0;
239 if(((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres = vkCreateDescriptorSetLayout(
241 , &(v_mk).m_U2.m_vkdescsetlayoutcreatinfo
243 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkdescsetlayout
246 assert(!
"Failed VkCreateDescriptorSetLayout");
250 if(!(v_mk).m_U0.m_mkswap.m_mkbase->m_vkdescsetlayout[0]) {
251 assert(!
"VkCreateDescriptorSetLayout went null");
256 (v_mk).m_U1.m_vkpushconstrange.offset = 0;
257 (v_mk).m_U1.m_vkpushconstrange.size = 0;
258 (v_mk).m_U1.m_vkpushconstrange.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT;
260 (v_mk).m_U2.m_vkpipelayoutcreatinfo.flags = 0;
261 (v_mk).m_U2.m_vkpipelayoutcreatinfo.pNext = NULL;
262 (v_mk).m_U2.m_vkpipelayoutcreatinfo.pPushConstantRanges
263 = &(v_mk).m_U1.m_vkpushconstrange;
264 (v_mk).m_U2.m_vkpipelayoutcreatinfo.pushConstantRangeCount = 1;
265 (v_mk).m_U2.m_vkpipelayoutcreatinfo.setLayoutCount = 1;
266 (v_mk).m_U2.m_vkpipelayoutcreatinfo.sType
267 = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;
268 (v_mk).m_U2.m_vkpipelayoutcreatinfo.pSetLayouts
269 = (v_mk).m_U0.m_mkswap.m_mkbase->m_vkdescsetlayout;
273 , (v_mk).m_U1.m_vkpushconstrange
274 , (v_mk).m_U2.m_vkpipelayoutcreatinfo
276 , (v_mk).m_U0.m_mkswap.m_mkbase
277 , ae2fVK_eAnnMlpPipeLayouts_kPredict
283 if((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres != VK_SUCCESS) {
284 assert(!
"__ae2fVK_AnnSlpMkOnePipeLayoutVerbose_imp 0 has failed.");
290 , (v_mk).m_U1.m_vkpushconstrange
291 , (v_mk).m_U2.m_vkpipelayoutcreatinfo
293 , (v_mk).m_U0.m_mkswap.m_mkbase
294 , ae2fVK_eAnnMlpPipeLayouts_kTrain
300 if((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres != VK_SUCCESS) {
301 assert(!
"__ae2fVK_AnnSlpMkOnePipeLayoutVerbose_imp 0 has failed.");
310 (v_mk).m_U1.m_clsrc_v
318 assert(!
"__ae2fVK_AnnSlpMkCLSPVVerbose_imp has failed.");
323 if(((v_mk).m_U4.m_clspverror = clspvCompileFromSourcesString(
325 , &(v_mk).m_U1.m_clsrc
328 "-cl-fast-relaxed-math "
329 "-cl-single-precision-constant"
335 , &(v_mk).m_U2.m_vkshadermodcreatinfo.pCode
338 , &(v_mk).m_U2.m_vkshadermodcreatinfo.codeSize
339 , &(v_mk).m_U3.m_cllog
342 free((v_mk).m_U1.m_clsrc_v);
343 free(
ae2f_const_cast(uint32_t*, (v_mk).m_U2.m_vkshadermodcreatinfo.pCode));
344 free((v_mk).m_U3.m_cllog);
346 switch((v_mk).m_U4.m_clspverror) {
349 assert(!
"clspvCompileFromSourcesString has failed.");
351 case CLSPV_OUT_OF_HOST_MEM:
353 assert(!
"clspvCompileFromSourcesString has failed its allocation.");
356 case CLSPV_INVALID_ARG:
358 assert(!
"clspvCompileFromSourcesString found arguments invalid.");
361 case CLSPV_SUCCESS: abort();
367 unless((v_mk).m_U2.m_vkshadermodcreatinfo.pCode) {
368 assert(!
"clspvCompileFromSourcesString went null.");
373 free((v_mk).m_U1.m_clsrc_v);
375 (v_mk).m_U2.m_vkshadermodcreatinfo.sType
376 = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
377 (v_mk).m_U2.m_vkshadermodcreatinfo.flags = 0;
378 (v_mk).m_U2.m_vkshadermodcreatinfo.pNext = NULL;
380 if((((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres = vkCreateShaderModule(
382 , &(v_mk).m_U2.m_vkshadermodcreatinfo
384 , &(v_mk).m_U0.m_mkswap.m_mkbase->m_vkshadermodule
386 assert(!
"vkCreateShaderModule has failed.");
387 free(
ae2f_const_cast(uint32_t*, (v_mk).m_U2.m_vkshadermodcreatinfo.pCode));
388 free((v_mk).m_U3.m_cllog);
392 unless((v_mk).m_U0.m_mkswap.m_mkbase->m_vkshadermodule) {
393 assert(!
"vkCreateShaderModule went null");
394 free(
ae2f_const_cast(uint32_t*, (v_mk).m_U2.m_vkshadermodcreatinfo.pCode));
395 free((v_mk).m_U3.m_cllog);
401 free((v_mk).m_U3.m_cllog);
407 , (v_mk).m_U1.m_vkcomputepipecreatinfo
408 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkpipelayout
409 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkshadermodule
411 , ae2fVK_eAnnMlpPipes_kPredict
412 , ae2fVK_eAnnMlpPipeLayouts_kPredict
415 if((v_mk).m_ret.m_err) {
416 assert(!
"__ae2fVK_AnnSlpMkLoadPipeCreat_imp");
423 , (v_mk).m_U1.m_vkcomputepipecreatinfo
424 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkpipelayout
425 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkshadermodule
427 , ae2fVK_eAnnMlpPipes_kPredictStream
428 , ae2fVK_eAnnMlpPipeLayouts_kPredict
431 if((v_mk).m_ret.m_err) {
432 assert(!
"__ae2fVK_AnnSlpMkLoadPipeCreat_imp");
439 , (v_mk).m_U1.m_vkcomputepipecreatinfo
440 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkpipelayout
441 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkshadermodule
443 , ae2fVK_eAnnMlpPipes_kFollow
444 , ae2fVK_eAnnMlpPipeLayouts_kTrain
447 if((v_mk).m_ret.m_err) {
448 assert(!
"__ae2fVK_AnnSlpMkLoadPipeCreat_imp");
455 , (v_mk).m_U1.m_vkcomputepipecreatinfo
456 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkpipelayout
457 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkshadermodule
459 , ae2fVK_eAnnMlpPipes_kTrainAuto
460 , ae2fVK_eAnnMlpPipeLayouts_kTrain
463 if((v_mk).m_ret.m_err) {
464 assert(!
"__ae2fVK_AnnSlpMkLoadPipeCreat_imp");
468 if(((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres
469 = vkCreateComputePipelines(
472 , ae2fVK_eAnnMlpPipes_LEN
473 , (v_mk).m_U1.m_vkcomputepipecreatinfo
475 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkpipeline
479 assert(!
"vkCreateComputePipelines has failed.");
484 assert((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres == VK_SUCCESS);
486 if((v_mk).m_ret.m_err) {
487 assert(!
"__ae2fVK_AnnSlpMkCreatDescPool has failed.");
493 if(!(v_mk).m_U0.m_mkswap.m_mkbase) {
494 assert(!
"Allocation has failed.");
499 if((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres != VK_SUCCESS) {
500 assert(!
"m_vkres was not VK_SUCCESS");
505 assert((v_mk).m_ret.m_err ==
ae2f_errGlob_OK &&
"Final status is no good");
509ae2f_MAC() _ae2fVK_AnnMlpClean_imp(ae2fVK_AnnMlp v_mlp) {
513 , (v_mlp).m_vkalloccalls
518 , (v_mlp).m_vkglobbuf
519 , (v_mlp).m_vkalloccalls
524 , (v_mlp).m_vkpipeline
525 [ae2fVK_eAnnMlpPipes_kPredict]
526 , (v_mlp).m_vkalloccalls
531 , (v_mlp).m_vkpipeline
532 [ae2fVK_eAnnMlpPipes_kFollow]
533 , (v_mlp).m_vkalloccalls
538 , (v_mlp).m_vkpipeline
539 [ae2fVK_eAnnMlpPipes_kTrainAuto]
540 , (v_mlp).m_vkalloccalls
545 , (v_mlp).m_vkpipeline
546 [ae2fVK_eAnnMlpPipes_kPredictStream]
547 , (v_mlp).m_vkalloccalls
550 vkDestroyDescriptorSetLayout(
552 , (v_mlp).m_vkdescsetlayout
553 [ae2fVK_eAnnMlpDescLayouts_ONLY]
554 , (v_mlp).m_vkalloccalls
559 , (v_mlp).m_vkglobdevmem
560 , (v_mlp).m_vkalloccalls
564 , (v_mlp).m_vklocdevmem
565 , (v_mlp).m_vkalloccalls
568 vkDestroyPipelineLayout(
570 , (v_mlp).m_vkpipelayout
571 [ae2fVK_eAnnMlpPipeLayouts_kPredict]
572 , (v_mlp).m_vkalloccalls
575 vkDestroyPipelineLayout(
577 , (v_mlp).m_vkpipelayout
578 [ae2fVK_eAnnMlpPipeLayouts_kTrain]
579 , (v_mlp).m_vkalloccalls
583ae2f_MAC() _ae2fVK_AnnMlpMapGoal_imp(
601ae2f_MAC() _ae2fVK_AnnMlpUnMapGoal_imp(
614ae2f_MAC() _ae2fVK_AnnMlpMapOutStream_imp(
616 ae2fVK_AnnMlp iv_mlp,
632ae2f_MAC() _ae2fVK_AnnMlpUnMapOutStream_imp(
640 ,
sizeof(uint32_t) * (iv_mlp).m_mlp.m_depth
641 ,
sizeof(
ae2f_float_t) * (iv_mlp).m_mlp.m_outc * (iv_mlp).m_mlp.m_depth
647 ae2fVK_AnnMlp iv_mlp,
659 ,
sizeof(uint32_t) * (iv_mlp).m_mlp.m_depth
660 +
sizeof(
ae2f_float_t) * (iv_mlp).m_mlp.m_outc * (iv_mlp).m_mlp.m_depth
661 ,
sizeof(
ae2f_float_t) * (iv_mlp).m_mlp.m_outc * ((iv_mlp).m_mlp.m_outc + 1) * ((iv_mlp).m_mlp.m_depth - 1)
665 assert(!
"__ae2fVK_AnnSlpMapRangedGeneric_imp has failed.");
670 assert(!
"__ae2fVK_AnnSlpMapRangedGeneric_imp went null.");
676 ((iv_mlp).m_mlp.m_depth - 1) *
677 (iv_mlp).m_mlp.m_outc * (iv_mlp).m_mlp.m_outc;
682ae2f_MAC() _ae2fVK_AnnMlpUnMapWB_imp(
690 ,
sizeof(uint32_t) * (iv_mlp).m_mlp.m_depth
691 +
sizeof(
ae2f_float_t) * (iv_mlp).m_mlp.m_outc * (iv_mlp).m_mlp.m_depth
692 ,
sizeof(
ae2f_float_t) * (iv_mlp).m_mlp.m_outc * ((iv_mlp).m_mlp.m_outc + 1) * ((iv_mlp).m_mlp.m_depth - 1)
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_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_AnnMlpUnMapRanged_imp
ae2fVK_AnnSlpUnMap_t ae2fVK_AnnMlpUnMap_t
#define __ae2fVK_AnnMlpMapRangedGeneric_imp
#define __ae2fVK_AnnMlpGoalSz(i_depth, i_outc)
VkMappedMemoryRange ae2fVK_AnnMlpMapRangedGeneric_t
#define __ae2fVK_AnnMlpOutStreamSz(i_depth, i_outc)
#define __ae2fVK_AnnMlpGoalOff(i_depth, i_outc)
#define __ae2fVK_AnnMlpOutStreamOff(i_depth, i_outc)
#define __ae2fVK_AnnMlpGlobMemSz(i_depth, i_outc)
#define ae2fVK_AnnMlpSHADER
#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 __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