1#undef __ae2f_MACRO_GENERATED
2#define __ae2f_MACRO_GENERATED 1
3#ifndef ae2fVK_Ann_Mlp_auto_h
6#define ae2fVK_Ann_Mlp_auto_h
9#include <ae2fVK/Ann/Mlp.h>
10#undef __ae2f_MACRO_GENERATED
11#define __ae2f_MACRO_GENERATED 1
12#include <ae2fVK/Ann/Mlp.auto.h>
13#undef __ae2f_MACRO_GENERATED
14#define __ae2f_MACRO_GENERATED 1
15#include <ae2fVK/Ann/MlpSHADER.auto.h>
16#undef __ae2f_MACRO_GENERATED
17#define __ae2f_MACRO_GENERATED 1
18#include <ae2fVK/Ann/Slp.auto.h>
19#undef __ae2f_MACRO_GENERATED
20#define __ae2f_MACRO_GENERATED 1
24#include <ae2f/Macro.h>
25#undef __ae2f_MACRO_GENERATED
26#define __ae2f_MACRO_GENERATED 1
27typedef ae2f_float_t cllocfloat_t;
32#undef __ae2f_MACRO_GENERATED
33#define __ae2f_MACRO_GENERATED 1
35#undef __ae2f_MACRO_GENERATED
36#define __ae2f_MACRO_GENERATED 1
38#undef __ae2f_MACRO_GENERATED
39#define __ae2f_MACRO_GENERATED 1
41#undef __ae2f_MACRO_GENERATED
42#define __ae2f_MACRO_GENERATED 1
46#define __ae2fVK_AnnMlpMk_imp(
71)\
72{
75 , iv_weight_opt, iv_bias_opt, iv_outstream_opt, iv_deltastream_opt
76 , i_len_count, i_len, i_len_swap
77 , i_prm_offset, i_extra
78 , i_act, i_actderiv, i_lossderiv
79 , i_learningrate, i_learningrate_bias
80 , i_vkdev, i_vkmemprops, iv_vkalloccalls
81 , i_vkcldeclaration, i_vkcldefinition
83}
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107#define __ae2fVK_AnnMlpMk_imp_V(
132)\
133{
135 assert
(i_len_count > 2
);
138 (v_mk).m_U1.m_i = (i_len_count);
139 while((v_mk).m_U1.m_i-- && (i_len)[(v_mk).m_U1.m_i] <= UINT32_MAX) {}
141 assert
(!"`i_len` exceeds the expected size (4 bytes)");
159 , i_learningrate_bias
160 , ((i_prm_offset) + sizeof(ae2fVK_AnnMlp) - sizeof(ae2f_AnnMlp))
164 unless((v_mk).m_U0.m_mkswap.m_mkbase) {
165 assert
(!"__ae2f_AnnMlpMk_imp went null");
170 if((v_mk).m_ret.m_err) {
171 assert
(!"__ae2f_AnnMlpMk_imp has failed.");
175 (v_mk).m_U0.m_mkswap.m_mkbase->m_vkres = VK_SUCCESS;
177 assert
(!"i_vkdev is null");
180 (v_mk).m_U0.m_mkswap.m_mkbase->m_vkdev = (i_vkdev);
181 (v_mk).m_U0.m_mkswap.m_mkbase->m_vkalloccalls = (iv_vkalloccalls);
183 assert
((v_mk).m_U0.m_mk.m_outc == (v_mk).m_U0.m_mkswap.m_mkbase->m_mlp.m_outc);
189 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkres
190 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkglobbuf
191 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkglobdevmem
193 , (v_mk).m_U1.m_vkbufcreatinfo
194 , (v_mk).m_U1.m_vkmemallocinfo
195 , VK_BUFFER_USAGE_STORAGE_BUFFER_BIT
196 , VK_SHARING_MODE_EXCLUSIVE
197 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkdev
198 , (v_mk).m_U2.m_vkmemreqs
200 , (v_mk).m_U3.m_vkmemtypeidx
202 , VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
207 (v_mk).m_U2.m_i = (i_len_count) * sizeof(uint32_t);
212 , (*(v_mk).m_U0.m_mkswap.m_mkbase)
214 , (v_mk).m_U3.m_mapped
219 if((v_mk).m_ret.m_err) {
220 assert
(!"__ae2fVK_AnnMlpMapRanged_imp has failed.");
223 , *(v_mk).m_U0.m_mkswap.m_mkbase
224 , 0
, ((i_len_count) * sizeof(uint32_t))
229 unless((v_mk).m_U3.m_mapped) {
230 assert
(!"__ae2fVK_AnnMlpMapRanged_imp went null");
234 (v_mk).m_U2.m_i = (i_len_count);
235 while((v_mk).m_U2.m_i--) {
237 = (i_len)[(v_mk).m_U2.m_i];
242 , *(v_mk).m_U0.m_mkswap.m_mkbase
243 , 0
, ((i_len_count) * sizeof(uint32_t))
251 (v_mk).m_U0.m_mk.m_mkbase->m_outc *
252 ((v_mk).m_U0.m_mk.m_mkbase->m_depth + 2
)
253 ) * sizeof(cllocfloat_t))
254 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkres
255 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vklocbuf
256 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vklocdevmem
258 , (v_mk).m_U1.m_vkbufcreatinfo
259 , (v_mk).m_U1.m_vkmemallocinfo
260 , VK_BUFFER_USAGE_STORAGE_BUFFER_BIT
261 , VK_SHARING_MODE_EXCLUSIVE
262 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkdev
263 , (v_mk).m_U2.m_vkmemreqs
265 , (v_mk).m_U3.m_vkmemtypeidx
267 , VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
271 if((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres) {
272 assert
(!"__ae2fVK_AnnSlpMkAllocVKMem_imp");
276 (v_mk).m_U1.m_vkdescsetlayoutbind[0
].descriptorType
277 = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
278 (v_mk).m_U1.m_vkdescsetlayoutbind[0
].descriptorCount = 1
;
279 (v_mk).m_U1.m_vkdescsetlayoutbind[0
].pImmutableSamplers = NULL
;
280 (v_mk).m_U1.m_vkdescsetlayoutbind[0
].stageFlags = VK_SHADER_STAGE_COMPUTE_BIT;
282 (v_mk).m_U1.m_vkdescsetlayoutbind[1
]
283 = (v_mk).m_U1.m_vkdescsetlayoutbind[0
];
285 (v_mk).m_U1.m_vkdescsetlayoutbind[0
].binding = 0
;
286 (v_mk).m_U1.m_vkdescsetlayoutbind[1
].binding = 1
;
288 (v_mk).m_U2.m_vkdescsetlayoutcreatinfo.sType
289 = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
290 (v_mk).m_U2.m_vkdescsetlayoutcreatinfo.pNext = NULL
;
291 (v_mk).m_U2.m_vkdescsetlayoutcreatinfo.bindingCount = 2
;
292 (v_mk).m_U2.m_vkdescsetlayoutcreatinfo.pBindings
293 = (v_mk).m_U1.m_vkdescsetlayoutbind;
294 (v_mk).m_U2.m_vkdescsetlayoutcreatinfo.flags = 0
;
296 if(((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres = vkCreateDescriptorSetLayout(
298 , &(v_mk).m_U2.m_vkdescsetlayoutcreatinfo
300 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkdescsetlayout
303 assert
(!"Failed VkCreateDescriptorSetLayout");
307 if(!(v_mk).m_U0.m_mkswap.m_mkbase->m_vkdescsetlayout[0
]) {
308 assert
(!"VkCreateDescriptorSetLayout went null");
313 (v_mk).m_U1.m_vkpushconstrange.offset = 0
;
314 (v_mk).m_U1.m_vkpushconstrange.size = 0
;
315 (v_mk).m_U1.m_vkpushconstrange.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT;
317 (v_mk).m_U2.m_vkpipelayoutcreatinfo.flags = 0
;
318 (v_mk).m_U2.m_vkpipelayoutcreatinfo.pNext = NULL
;
319 (v_mk).m_U2.m_vkpipelayoutcreatinfo.pPushConstantRanges
320 = &(v_mk).m_U1.m_vkpushconstrange;
321 (v_mk).m_U2.m_vkpipelayoutcreatinfo.pushConstantRangeCount = 1
;
322 (v_mk).m_U2.m_vkpipelayoutcreatinfo.setLayoutCount = 1
;
323 (v_mk).m_U2.m_vkpipelayoutcreatinfo.sType
324 = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;
325 (v_mk).m_U2.m_vkpipelayoutcreatinfo.pSetLayouts
326 = (v_mk).m_U0.m_mkswap.m_mkbase->m_vkdescsetlayout;
330 , (v_mk).m_U1.m_vkpushconstrange
331 , (v_mk).m_U2.m_vkpipelayoutcreatinfo
333 , (v_mk).m_U0.m_mkswap.m_mkbase
334 , ae2fVK_eAnnMlpPipeLayouts_kPredict
340 if((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres != VK_SUCCESS) {
341 assert
(!"__ae2fVK_AnnSlpMkOnePipeLayoutVerbose_imp 0 has failed.");
347 , (v_mk).m_U1.m_vkpushconstrange
348 , (v_mk).m_U2.m_vkpipelayoutcreatinfo
350 , (v_mk).m_U0.m_mkswap.m_mkbase
351 , ae2fVK_eAnnMlpPipeLayouts_kTrain
352 , sizeof(uint32_t) + (sizeof(ae2f_float_t) * 2
)
357 if((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres != VK_SUCCESS) {
358 assert
(!"__ae2fVK_AnnSlpMkOnePipeLayoutVerbose_imp 0 has failed.");
362 assert
(i_vkcldefinition);
363 assert
(i_vkcldeclaration);
367 (v_mk).m_U1.m_clsrc_v
369 , (i_vkcldeclaration)
374 unless((v_mk).m_U1.m_clsrc_v) {
375 assert
(!"__ae2fVK_AnnSlpMkCLSPVVerbose_imp has failed.");
380 if(((v_mk).m_U4.m_clspverror = clspvCompileFromSourcesString(
382 , &(v_mk).m_U1.m_clsrc
388 , &(v_mk).m_U2.m_vkshadermodcreatinfo.pCode
391 , &(v_mk).m_U2.m_vkshadermodcreatinfo.codeSize
392 , &(v_mk).m_U3.m_cllog
395 free((v_mk).m_U1.m_clsrc_v);
396 free(ae2f_const_cast(uint32_t*, (v_mk).m_U2.m_vkshadermodcreatinfo.pCode));
397 free((v_mk).m_U3.m_cllog);
399 switch((v_mk).m_U4.m_clspverror) {
402 assert
(!"clspvCompileFromSourcesString has failed.");
404 case CLSPV_OUT_OF_HOST_MEM:
406 assert
(!"clspvCompileFromSourcesString has failed its allocation.");
409 case CLSPV_INVALID_ARG:
411 assert
(!"clspvCompileFromSourcesString found arguments invalid.");
414 case CLSPV_SUCCESS: abort();
420 unless((v_mk).m_U2.m_vkshadermodcreatinfo.pCode) {
421 assert
(!"clspvCompileFromSourcesString went null.");
426 free((v_mk).m_U1.m_clsrc_v);
428 (v_mk).m_U2.m_vkshadermodcreatinfo.sType
429 = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
430 (v_mk).m_U2.m_vkshadermodcreatinfo.flags = 0
;
431 (v_mk).m_U2.m_vkshadermodcreatinfo.pNext = NULL
;
433 if((((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres = vkCreateShaderModule(
435 , &(v_mk).m_U2.m_vkshadermodcreatinfo
437 , &(v_mk).m_U0.m_mkswap.m_mkbase->m_vkshadermodule
439 assert
(!"vkCreateShaderModule has failed.");
440 free(ae2f_const_cast(uint32_t*, (v_mk).m_U2.m_vkshadermodcreatinfo.pCode));
441 free((v_mk).m_U3.m_cllog);
445 unless((v_mk).m_U0.m_mkswap.m_mkbase->m_vkshadermodule) {
446 assert
(!"vkCreateShaderModule went null");
447 free(ae2f_const_cast(uint32_t*, (v_mk).m_U2.m_vkshadermodcreatinfo.pCode));
448 free((v_mk).m_U3.m_cllog);
453 free(ae2f_const_cast(uint32_t*, (v_mk).m_U2.m_vkshadermodcreatinfo.pCode));
454 free((v_mk).m_U3.m_cllog);
460 , (v_mk).m_U1.m_vkcomputepipecreatinfo
461 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkpipelayout
462 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkshadermodule
464 , ae2fVK_eAnnMlpPipes_kPredict
465 , ae2fVK_eAnnMlpPipeLayouts_kPredict
468 if((v_mk).m_ret.m_err) {
469 assert
(!"__ae2fVK_AnnSlpMkLoadPipeCreat_imp");
476 , (v_mk).m_U1.m_vkcomputepipecreatinfo
477 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkpipelayout
478 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkshadermodule
480 , ae2fVK_eAnnMlpPipes_kPredictStream
481 , ae2fVK_eAnnMlpPipeLayouts_kPredict
484 if((v_mk).m_ret.m_err) {
485 assert
(!"__ae2fVK_AnnSlpMkLoadPipeCreat_imp");
492 , (v_mk).m_U1.m_vkcomputepipecreatinfo
493 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkpipelayout
494 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkshadermodule
496 , ae2fVK_eAnnMlpPipes_kFollow
497 , ae2fVK_eAnnMlpPipeLayouts_kTrain
500 if((v_mk).m_ret.m_err) {
501 assert
(!"__ae2fVK_AnnSlpMkLoadPipeCreat_imp");
508 , (v_mk).m_U1.m_vkcomputepipecreatinfo
509 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkpipelayout
510 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkshadermodule
512 , ae2fVK_eAnnMlpPipes_kTrainAuto
513 , ae2fVK_eAnnMlpPipeLayouts_kTrain
516 if((v_mk).m_ret.m_err) {
517 assert
(!"__ae2fVK_AnnSlpMkLoadPipeCreat_imp");
521 if(((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres
522 = vkCreateComputePipelines(
525 , ae2fVK_eAnnMlpPipes_LEN
526 , (v_mk).m_U1.m_vkcomputepipecreatinfo
528 , (v_mk).m_U0.m_mkswap.m_mkbase->m_vkpipeline
532 assert
(!"vkCreateComputePipelines has failed.");
537 assert
((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres == VK_SUCCESS);
539 if((v_mk).m_ret.m_err) {
540 assert
(!"__ae2fVK_AnnSlpMkCreatDescPool has failed.");
546 if(!(v_mk).m_U0.m_mkswap.m_mkbase) {
547 assert
(!"Allocation has failed.");
552 if((v_mk).m_U0.m_mkswap.m_mkbase->m_vkres != VK_SUCCESS) {
553 assert
(!"m_vkres was not VK_SUCCESS");
558 assert
((v_mk).m_ret.m_err == ae2f_errGlob_OK && "Final status is no good");
560}
562#define __ae2fVK_AnnMlpClean_imp(
568){
572 , (v_mlp).m_vkalloccalls
577 , (v_mlp).m_vkglobbuf
578 , (v_mlp).m_vkalloccalls
583 , (v_mlp).m_vkpipeline
584 [ae2fVK_eAnnMlpPipes_kPredict]
585 , (v_mlp).m_vkalloccalls
590 , (v_mlp).m_vkpipeline
591 [ae2fVK_eAnnMlpPipes_kFollow]
592 , (v_mlp).m_vkalloccalls
597 , (v_mlp).m_vkpipeline
598 [ae2fVK_eAnnMlpPipes_kTrainAuto]
599 , (v_mlp).m_vkalloccalls
604 , (v_mlp).m_vkpipeline
605 [ae2fVK_eAnnMlpPipes_kPredictStream]
606 , (v_mlp).m_vkalloccalls
609 vkDestroyDescriptorSetLayout(
611 , (v_mlp).m_vkdescsetlayout
612 [ae2fVK_eAnnMlpDescLayouts_ONLY]
613 , (v_mlp).m_vkalloccalls
618 , (v_mlp).m_vkglobdevmem
619 , (v_mlp).m_vkalloccalls
623 , (v_mlp).m_vklocdevmem
624 , (v_mlp).m_vkalloccalls
627 vkDestroyPipelineLayout(
629 , (v_mlp).m_vkpipelayout
630 [ae2fVK_eAnnMlpPipeLayouts_kPredict]
631 , (v_mlp).m_vkalloccalls
634 vkDestroyPipelineLayout(
636 , (v_mlp).m_vkpipelayout
637 [ae2fVK_eAnnMlpPipeLayouts_kTrain]
638 , (v_mlp).m_vkalloccalls
640}
642#define __ae2fVK_AnnMlpMapGoal_imp(
651)\
652{
662}
664#define __ae2fVK_AnnMlpUnMapGoal_imp(
671)\
672{
679}
681#define __ae2fVK_AnnMlpMapOutStream_imp(
690)\
691{
701}
703#define __ae2fVK_AnnMlpUnMapOutStream_imp(
710) \
711{
715 , sizeof(uint32_t) * (iv_mlp).m_mlp.m_depth
716 , sizeof(ae2f_float_t) * (iv_mlp).m_mlp.m_outc * (iv_mlp).m_mlp.m_depth
718}
720#define __ae2fVK_AnnMlpMapWB_imp(
730)\
731{
738 , sizeof(uint32_t) * (iv_mlp).m_mlp.m_depth
739 + sizeof(ae2f_float_t) * (iv_mlp).m_mlp.m_outc * (iv_mlp).m_mlp.m_depth
740 , sizeof(ae2f_float_t) * (iv_mlp).m_mlp.m_outc * ((iv_mlp).m_mlp.m_outc + 1
) * ((iv_mlp).m_mlp.m_depth - 1
)
744 assert
(!"__ae2fVK_AnnSlpMapRangedGeneric_imp has failed.");
749 assert
(!"__ae2fVK_AnnSlpMapRangedGeneric_imp went null.");
755 ((iv_mlp).m_mlp.m_depth - 1
) *
756 (iv_mlp).m_mlp.m_outc * (iv_mlp).m_mlp.m_outc;
759}
761#define __ae2fVK_AnnMlpUnMapWB_imp(
768) \
769{
773 , sizeof(uint32_t) * (iv_mlp).m_mlp.m_depth
774 + sizeof(ae2f_float_t) * (iv_mlp).m_mlp.m_outc * (iv_mlp).m_mlp.m_depth
775 , sizeof(ae2f_float_t) * (iv_mlp).m_mlp.m_outc * ((iv_mlp).m_mlp.m_outc + 1
) * ((iv_mlp).m_mlp.m_depth - 1
)
777}
780#undef __ae2f_MACRO_GENERATED
782#define __ae2f_MACRO_GENERATED 0
#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 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_AnnSlpDeltaOff_V(CLFLOAT, i_inp, i_out)
#define __ae2fVK_AnnSlpGlobSz_V(CLFLOAT, i_inp, i_out)
#define __ae2fVK_AnnSlpOutSz_V(CLFLOAT, i_inp, i_out)
#define __ae2fVK_AnnSlpInpSz_V(CLFLOAT, i_inp, i_out)
#define __ae2fVK_AnnSlpGoalSz_V(CLFLOAT, i_inp, i_out)
#define __ae2fVK_AnnSlpDeltaSz_V(CLFLOAT, 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_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_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_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_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_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.