1#undef __ae2f_MACRO_GENERATED
2#define __ae2f_MACRO_GENERATED 1
3#ifndef ae2fVK_Ann_Slp_c
7#undef __ae2f_MACRO_GENERATED
8#define __ae2f_MACRO_GENERATED 1
11#include <ae2fVK/Ann/Slp.h>
12#undef __ae2f_MACRO_GENERATED
13#define __ae2f_MACRO_GENERATED 1
15#define ae2fVK_Ann_Slp_c
19#undef __ae2f_MACRO_GENERATED
20#define __ae2f_MACRO_GENERATED 1
22#undef __ae2f_MACRO_GENERATED
23#define __ae2f_MACRO_GENERATED 1
25#undef __ae2f_MACRO_GENERATED
26#define __ae2f_MACRO_GENERATED 1
30#include <ae2fVK/Ann/SlpSHADER.auto.h>
31#undef __ae2f_MACRO_GENERATED
32#define __ae2f_MACRO_GENERATED 1
34#define __ae2fVK_AnnSlpMkFndMemProp_imp(
41 memtypeidx_invalid_minus_one,
44)\
45{
47 assert
(VK_MAX_MEMORY_TYPES
<= memtypeidx_invalid_minus_one && "Invalid index does not do its thing.");
48 assert
((vkphydevmemprops).memoryTypeCount <= VK_MAX_MEMORY_TYPES
&& "Invalid memory type count.");
51 (r_memtypeidx) = (vkphydevmemprops).memoryTypeCount;
53 && (~((vkphydevmemprops).memoryTypes[(r_memtypeidx)].propertyFlags)
58 if((r_memtypeidx) == (memtypeidx_invalid_minus_one)) {
59 assert
(!"Wanted bit has not found is not supported");
63}
65#define __ae2fVK_AnnSlpMkCreatBuf(
79)\
80{
81 (v_vkbufcreatinfo).sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
82 (v_vkbufcreatinfo).pNext = 0
;
83 (v_vkbufcreatinfo).usage = (vkbufuseflags);
84 (v_vkbufcreatinfo).pQueueFamilyIndices = 0
;
85 (v_vkbufcreatinfo).queueFamilyIndexCount = 0
;
86 (v_vkbufcreatinfo).sharingMode = vksharemode;
87 (v_vkbufcreatinfo).flags = 0
;
88 (v_vkbufcreatinfo).size = (sz);
90 if(((r_vkres) = vkCreateBuffer(
98 assert
(!"Failed vkCreateBuffer");
103 assert
(!"vkCreateBuffer went null");
107}
109#define __ae2fVK_AnnSlpMkAllocVKMem_imp(
127 memtypeidx_invalid_minus_one,
130)\
131{
149 , memtypeidx_invalid_minus_one
154 vkGetBufferMemoryRequirements(
160 unless((v_vkmemreq).size >= (v_vkbufcreatinfo).size) {
161 assert
(!"Buffer size exceeds memory requirements");
166 unless((v_vkmemreq).size <=
167 (vkphydevmemprops).memoryHeaps[(vkphydevmemprops).memoryTypes[v_memtypeidx].heapIndex].size)
169 assert
(!"Requirement size exceeds memory heap size.");
174 (v_memallocinfo).sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
175 (v_memallocinfo).allocationSize = (v_vkmemreq).size;
176 (v_memallocinfo).memoryTypeIndex = (v_memtypeidx);
177 (v_memallocinfo).pNext = NULL
;
179 if(((r_vkres) = vkAllocateMemory(
186 assert
(!"vkAllocateMemory has failed.");
191 assert
(!"vkAllocateMemory went null.");
196 if(((r_vkres) = vkBindBufferMemory(
203 assert
(!"vkBindBufferMemory has failed.");
206}
208#define __ae2fVK_AnnSlpMkLoadPipeCreat_imp(
220)\
221{
223 &(pipecreat)[(idx_pipe)], 0
224 , sizeof((pipecreat)[0
])
227 unless((pipelayout)[idx_pipelayout]) {
228 assert
(!"Pipelayout went null");
233 (pipecreat)[idx_pipe].sType = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO;
234 (pipecreat)[idx_pipe].layout = ((pipelayout)[idx_pipelayout]);
235 (pipecreat)[idx_pipe].pNext = NULL
;
236 (pipecreat)[idx_pipe].basePipelineHandle = NULL
;
237 (pipecreat)[idx_pipe].basePipelineIndex = -1
;
238 (pipecreat)[idx_pipe].flags = 0
;
239 (pipecreat)[idx_pipe].stage.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
240 (pipecreat)[idx_pipe].stage.stage = VK_SHADER_STAGE_COMPUTE_BIT;
241 (pipecreat)[idx_pipe].stage.module = (shadermod);
242 (pipecreat)[idx_pipe].stage.pName = entrypoint;
243 (pipecreat)[idx_pipe].stage.pSpecializationInfo = NULL
;
244 (pipecreat)[idx_pipe].stage.flags = 0
; \
245}
247#define __ae2fVK_AnnSlpMkOnePipeLayoutVerbose_imp(
253 v_vkpipelayoutcreatinfo,
260)\
261{
262 (v_vkpushconstrange).size
265 if((szrequired) & 0b11
) {
266 (v_vkpushconstrange).size
271 if(((iv_slpptr)->m_vkres = vkCreatePipelineLayout(
273 , &(v_vkpipelayoutcreatinfo)
275 , &(iv_slpptr)->m_vkpipelayout[idx]
278 assert
(!"vkCreatePipelineLayout has failed.");
282 unless((iv_slpptr)->m_vkpipelayout[idx])
284 assert
(!"vkCreatePipelineLayout went null");
288}
291#define __ae2fVK_AnnSlpCreatDescPool_imp(
300 i_vkdescpoolcreatflags,
302 i_vkdescpoolsz_count,
304)\
305{
307 (v_descpool).m_U0.m_vkdescpoolcreatinfo
308 , (v_descpool).m_U0.m_vkdescpoolsz
313 , (iv_slp).m_vkalloccalls
314 , i_vkdescpoolcreatflags
316 , i_vkdescpoolsz_count
319}
321#define __ae2fVK_AnnSlpCreatDescPoolVerbose_imp(
326 v_vkdescpoolcreatinfo,
333 i_vkdescpoolcreatflags,
335 i_vkdescpoolsz_count,
337)\
338{
339 (v_vkdescpoolsz).type = (i_vkdesctype);
340 (v_vkdescpoolsz).descriptorCount = (i_vkdescpoolsz_count);
342 (v_vkdescpoolcreatinfo).sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
343 (v_vkdescpoolcreatinfo).flags = 0
;
344 (v_vkdescpoolcreatinfo).pNext = NULL
;
345 (v_vkdescpoolcreatinfo).flags = (i_vkdescpoolcreatflags);
346 (v_vkdescpoolcreatinfo).poolSizeCount = 1
;
347 (v_vkdescpoolcreatinfo).pPoolSizes = &(v_vkdescpoolsz);
348 (v_vkdescpoolcreatinfo).maxSets = (i_vkmaxdescsets);
350 if(((r_vkres) = vkCreateDescriptorPool(
352 , &(v_vkdescpoolcreatinfo)
357 assert
(!"vkCreateDescriptorPool has failed.");
361 assert
(!"vkCreateDescriptorPool went null.");
364}
366#define __ae2fVK_AnnSlpMk_imp(
389){
392 , v_mk, weight_opt, bias_opt, cache_opt
393 , inc, outc, prm_offset
394 , extra, act, actderiv, lossderiv
395 , learningrate, learningrate_bias
396 , vkdev, vkmemprops, vkalloccalls
397 , vkcldeclaration, vkcldefinition
399}
403typedef ae2f_float_t cllocfloat_t;
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428#define __ae2fVK_AnnSlpMk_imp_V(
451)\
452{
453 assert
((vkdev) && "Vulkan device null check");
454 assert
((lossderiv) && "lossderiv must be specified.");
460 (v_mk).m_U0.m_base, (weight_opt)
461 , (bias_opt), (cache_opt)
463 , ((prm_offset) + sizeof(ae2fVK_AnnSlp) - sizeof(ae2f_AnnSlp))
465 , (act), (actderiv), (lossderiv)
466 , (learningrate), (learningrate_bias)
469 if((v_mk).m_U0.m_base.m_ptr->m_Slp[0
].m_inc > UINT32_MAX) {
470 assert
(!"Input size is too large");
475 if((v_mk).m_U0.m_base.m_ptr->m_Slp[0
].m_outc > UINT32_MAX) {
476 assert
(!"Output size is too large");
481 (v_mk).m_U0.m_alter.m_ptr->m_vkdev = vkdev;
482 (v_mk).m_U0.m_alter.m_ptr->m_vkalloccalls = vkalloccalls;
488 , (v_mk).m_U0.m_alter.m_ptr->m_vkres
489 , (v_mk).m_U0.m_alter.m_ptr->m_vkglobbuf
490 , (v_mk).m_U0.m_alter.m_ptr->m_vkglobdevmem
492 , (v_mk).m_U1.m_vkbufcreatinfo
493 , (v_mk).m_U1.m_vkmemallocinfo
494 , VK_BUFFER_USAGE_STORAGE_BUFFER_BIT
495 , VK_SHARING_MODE_EXCLUSIVE
497 , (v_mk).m_U2.m_vkmemreqs
499 , (v_mk).m_U0.m_alter.m_i
501 , VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
508 , sizeof(cllocfloat_t) * ((outc))
509 , (v_mk).m_U0.m_alter.m_ptr->m_vkres
510 , (v_mk).m_U0.m_alter.m_ptr->m_vklocbuf
511 , (v_mk).m_U0.m_alter.m_ptr->m_vklocdevmem
513 , (v_mk).m_U1.m_vkbufcreatinfo
514 , (v_mk).m_U1.m_vkmemallocinfo
515 , VK_BUFFER_USAGE_STORAGE_BUFFER_BIT
516 , VK_SHARING_MODE_EXCLUSIVE
518 , (v_mk).m_U2.m_vkmemreqs
520 , (v_mk).m_U0.m_alter.m_i
522 , VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
526 (v_mk).m_U2.m_S0.m_glob.binding = 0
;
528 (v_mk).m_U2.m_S0.m_glob.descriptorType
529 = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
531 (v_mk).m_U2.m_S0.m_glob.descriptorCount = 1
;
533 (v_mk).m_U2.m_S0.m_glob.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT;
534 (v_mk).m_U2.m_S0.m_glob.pImmutableSamplers = NULL
;
536 (v_mk).m_U2.m_S0.m_loc = (v_mk).m_U2.m_S0.m_glob;
537 (v_mk).m_U2.m_S0.m_loc.binding = 1
;
540 (v_mk).m_U1.m_vkdescsetlayoutcreatinfo.pBindings = (v_mk).m_U2.m_vkdescsetlayoutbind;
541 (v_mk).m_U1.m_vkdescsetlayoutcreatinfo.bindingCount = 1
;
542 (v_mk).m_U1.m_vkdescsetlayoutcreatinfo.flags = 0
;
543 (v_mk).m_U1.m_vkdescsetlayoutcreatinfo.pNext = NULL
;
544 (v_mk).m_U1.m_vkdescsetlayoutcreatinfo.sType
545 = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
547 if(((v_mk).m_U0.m_alter.m_ptr->m_vkres = vkCreateDescriptorSetLayout(
549 , &(v_mk).m_U1.m_vkdescsetlayoutcreatinfo
551 , &(v_mk).m_U0.m_alter.m_ptr->m_vkdescsetlayout
552 [ae2fVK_eAnnSlpDescLayouts_kPredict]
554 assert
(!"vkCreateDescriptorSetLayout 0 has failed");
558 unless((v_mk).m_U0.m_alter.m_ptr->m_vkdescsetlayout[0
]) {
559 assert
(!"vkCreateDescriptorSetLayout 0 went null");
564 (v_mk).m_U1.m_vkdescsetlayoutcreatinfo.bindingCount = 2
;
566 if(((v_mk).m_U0.m_alter.m_ptr->m_vkres = vkCreateDescriptorSetLayout(
568 , &(v_mk).m_U1.m_vkdescsetlayoutcreatinfo
570 , &(v_mk).m_U0.m_alter.m_ptr->m_vkdescsetlayout
571 [ae2fVK_eAnnSlpDescLayouts_kTrain]
573 assert
(!"vkCreateDescriptorSetLayout 1 has failed");
577 unless((v_mk).m_U0.m_alter.m_ptr->m_vkdescsetlayout[1
]) {
578 assert
(!"vkCreateDescriptorSetLayout 1 went null");
583 (v_mk).m_U1.m_vkpushconstrange.offset = 0
;
584 (v_mk).m_U1.m_vkpushconstrange.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT;
586 (v_mk).m_U2.m_vkpipelayoutcreatinfo.sType
587 = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;
588 (v_mk).m_U2.m_vkpipelayoutcreatinfo.setLayoutCount = 1
;
589 (v_mk).m_U2.m_vkpipelayoutcreatinfo.pushConstantRangeCount = 1
;
590 (v_mk).m_U2.m_vkpipelayoutcreatinfo.pPushConstantRanges
591 = &(v_mk).m_U1.m_vkpushconstrange;
592 (v_mk).m_U2.m_vkpipelayoutcreatinfo.pSetLayouts
593 = (v_mk).m_U0.m_alter.m_ptr->m_vkdescsetlayout;
597 (v_mk).m_U1.m_vkpushconstrange
598 , (v_mk).m_U2.m_vkpipelayoutcreatinfo
600 , (v_mk).m_U0.m_alter.m_ptr
601 , ae2fVK_eAnnSlpPipeLayouts_kPredict
607 if ((v_mk).m_U0.m_alter.m_ptr->m_vkres != VK_SUCCESS) {
608 assert
(!"__ae2fVK_AnnSlpMkOnePipeLayout_imp 0 has failed.");
614 (v_mk).m_U1.m_vkpushconstrange
615 , (v_mk).m_U2.m_vkpipelayoutcreatinfo
617 , (v_mk).m_U0.m_alter.m_ptr
618 , ae2fVK_eAnnSlpPipeLayouts_kTrain
619 , sizeof(ae2f_float_t) * 2
624 if ((v_mk).m_U0.m_alter.m_ptr->m_vkres != VK_SUCCESS) {
625 assert
(!"__ae2fVK_AnnSlpMkOnePipeLayout_imp 1 has failed.");
629 assert
((vkcldeclaration) && "vkcldeclaration is null");
630 assert
((vkcldefinition) && "vkcldefinition is null");
634 (v_mk).m_U3.m_openclsrc_v
641 if((v_mk).m_reterr) {
642 assert
(!"__ae2fVK_AnnSlpMkCLSPV_imp has failed.");
646 assert
((v_mk).m_U3.m_openclsrc);
649 (v_mk).m_U1.m_spirv = NULL
;
650 (v_mk).m_U0.m_spirv_len = 0
;
652 assert
((v_mk).m_U0.m_alter.m_ptr);
654 switch(clspvCompileFromSourcesString(
658 const char** ae2f_restrict
659 , (&(v_mk).m_U3.m_openclsrc)
662 , &(v_mk).m_U1.m_spirv_c
663 , &(v_mk).m_U0.m_spirv_len
669 assert
(!"clspvCompileFromSourcesString has failed.");
672 case CLSPV_OUT_OF_HOST_MEM:
674 assert
(!"clspvCompileFromSourcesString has failed its allocation.");
678 case CLSPV_INVALID_ARG:
680 assert
(!"clspvCompileFromSourcesString found arguments invalid.");
684 case CLSPV_SUCCESS: break;
687 free((v_mk).m_U3.m_openclsrc);
688 free((v_mk).m_U2.m_log);
691 assert
((v_mk).m_U0.m_base.m_ptr && "clspvCompileFromSourcesString has done something weird");
693 (v_mk).m_U2.m_vkshadermodcreatinfo.pNext = NULL
;
694 (v_mk).m_U2.m_vkshadermodcreatinfo.codeSize
695 = (v_mk).m_U0.m_spirv_len;
696 (v_mk).m_U2.m_vkshadermodcreatinfo.pCode
697 = (v_mk).m_U1.m_spirv_u32;
698 (v_mk).m_U2.m_vkshadermodcreatinfo.flags = 0
;
699 (v_mk).m_U2.m_vkshadermodcreatinfo.sType
700 = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
702 if(((v_mk).m_U0.m_alter.m_ptr->m_vkres = vkCreateShaderModule(
704 , &(v_mk).m_U2.m_vkshadermodcreatinfo
706 , &(v_mk).m_U0.m_alter.m_ptr->m_vkshadermodule
709 assert
(!"vkCreateShaderModule has failed.");
713 unless((v_mk).m_U0.m_alter.m_ptr->m_vkshadermodule)
715 assert
(!"vkCreateShaderModule has produced NULL.");
720 free((v_mk).m_U1.m_spirv);
725 , (v_mk).m_U2.m_vkcomputepipecreatinfo
726 , (v_mk).m_U0.m_alter.m_ptr->m_vkpipelayout
727 , (v_mk).m_U0.m_alter.m_ptr->m_vkshadermodule
729 , (ae2fVK_eAnnSlpPipes_kFollow)
730 , (ae2fVK_eAnnSlpPipeLayouts_kTrain)
736 , (v_mk).m_U2.m_vkcomputepipecreatinfo
737 , (v_mk).m_U0.m_alter.m_ptr->m_vkpipelayout
738 , (v_mk).m_U0.m_alter.m_ptr->m_vkshadermodule
740 , (ae2fVK_eAnnSlpPipes_kFit)
741 , (ae2fVK_eAnnSlpPipeLayouts_kTrain)
747 , (v_mk).m_U2.m_vkcomputepipecreatinfo
748 , (v_mk).m_U0.m_alter.m_ptr->m_vkpipelayout
749 , (v_mk).m_U0.m_alter.m_ptr->m_vkshadermodule
751 , ae2fVK_eAnnSlpPipes_kPredict
752 , ae2fVK_eAnnSlpPipeLayouts_kPredict
758 , (v_mk).m_U2.m_vkcomputepipecreatinfo
759 , (v_mk).m_U0.m_alter.m_ptr->m_vkpipelayout
760 , (v_mk).m_U0.m_alter.m_ptr->m_vkshadermodule
762 , (ae2fVK_eAnnSlpPipes_kTrain)
763 , (ae2fVK_eAnnSlpPipeLayouts_kTrain)
766 if (((v_mk).m_U0.m_alter.m_ptr->m_vkres
767 = vkCreateComputePipelines(
770 , ae2fVK_eAnnSlpPipes_LEN
771 , (v_mk).m_U2.m_vkcomputepipecreatinfo
773 , (v_mk).m_U0.m_alter.m_ptr->m_vkpipeline
777 assert
(!"vkCreateComputePipelines has failed.");
783 assert
((v_mk).m_reterr == ae2f_errGlob_OK && "Returned error flag has set up");
784 if((v_mk).m_U0.m_alter.m_ptr->m_vkres) {
785 assert
(!"Vulkan result check for validation");
788}
791
792
793
794#define __ae2fVK_AnnSlpMkCLSPVVerbose_imp(
804) \
805{
806 if(!((r_handle) = calloc(
808 , strlen(i_first) + sizeof(
813 assert
(!"_ae2fVK_AnnSlpMkCLSPV_imp has failed.");
822}
825#define __ae2fVK_AnnSlpMap_imp(
833)\
834{
835 if((slp).m_vkres != VK_SUCCESS) {
836 assert
(!"Result flag is not valid.");
839 assert
((slp).m_vkdev);
840 assert
((slp).m_vkglobdevmem);
844 if(((slp).m_vkres = vkMapMemory(
846 , (slp).m_vkglobdevmem
852 assert
(!"vkMapMemory has failed.");
857 assert
(!"vkMapMemory went null.");
862}
868#define __ae2fVK_AnnSlpMapRangedGeneric_imp(
879)\
880{
881 assert
((iv_slp).m_vkres == VK_SUCCESS);
882 assert
((iv_slp).m_vkdev);
883 assert
((iv_slp).m_vkglobdevmem);
887 if(((iv_slp).m_vkres = vkMapMemory(
889 , (iv_slp).m_vkglobdevmem
890 , (v_vkmapmemrange).offset = (i_off)
891 , (v_vkmapmemrange).size = (i_sz)
897 assert
(!"vkMapMemory has failed.");
902 assert
(!"vkMapMemory went null.");
907 (v_vkmapmemrange).memory = (iv_slp).m_vkglobdevmem;
908 (v_vkmapmemrange).pNext = NULL
;
909 (v_vkmapmemrange).sType = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE;
911 if (((iv_slp).m_vkres = vkInvalidateMappedMemoryRanges(
917 assert
(!"vkInvalidateMappedMemoryRanges has failed.");
922 unless((iv_slp).m_vkres == VK_SUCCESS) {
925}
929#define __ae2fVK_AnnSlpUnMap_imp(
935){
936 assert
((slp).m_vkdev);
937 assert
((slp).m_vkglobdevmem);
938 vkUnmapMemory((slp).m_vkdev, (slp).m_vkglobdevmem); \
939}
941#define __ae2fVK_AnnSlpUnMapRanged_imp(
950)\
951{
952 assert
((vi_slp).m_vkres == VK_SUCCESS);
954 (v_out).memory = (vi_slp).m_vkglobdevmem;
955 (v_out).offset = (i_off);
956 (v_out).pNext = NULL
;
957 (v_out).size = (i_sz);
958 (v_out).sType = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE;
961 if (((vi_slp).m_vkres = vkFlushMappedMemoryRanges(
967 assert
(!"vkFlushMappedMemoryRanges has failed.");
973}
975#define __ae2fVK_AnnSlpClean_imp(
981)\
982{
983 assert
((block).m_vkdev && "Double free is suspected.");
985 if((block).m_vkdev) {
986 if((block).m_vkglobbuf) {
989 , (block).m_vkglobbuf
990 , (block).m_vkalloccalls
994 if((block).m_vklocbuf) {
998 , (block).m_vkalloccalls
1002 if((block).m_vkglobdevmem) {
1005 , (block).m_vkglobdevmem
1006 , (block).m_vkalloccalls
1010 if((block).m_vklocdevmem) {
1013 , (block).m_vklocdevmem
1014 , (block).m_vkalloccalls
1018 if((block).m_vkpipeline[0
]) {
1021 , (block).m_vkpipeline[0
]
1022 , (block).m_vkalloccalls
1026 if((block).m_vkpipeline[1
]) {
1029 , (block).m_vkpipeline[1
]
1030 , (block).m_vkalloccalls
1034 if((block).m_vkpipeline[2
]) {
1037 , (block).m_vkpipeline[2
]
1038 , (block).m_vkalloccalls
1042 if((block).m_vkpipeline[3
]) {
1045 , (block).m_vkpipeline[3
]
1046 , (block).m_vkalloccalls
1050 if((block).m_vkdescsetlayout[0
]) {
1051 vkDestroyDescriptorSetLayout(
1053 , (block).m_vkdescsetlayout[0
]
1054 , (block).m_vkalloccalls
1058 if((block).m_vkdescsetlayout[1
]) {
1059 vkDestroyDescriptorSetLayout(
1061 , (block).m_vkdescsetlayout[1
]
1062 , (block).m_vkalloccalls
1066 if((block).m_vkpipelayout[0
]) {
1067 vkDestroyPipelineLayout(
1069 , (block).m_vkpipelayout[0
]
1070 , (block).m_vkalloccalls
1074 if((block).m_vkpipelayout[1
]) {
1075 vkDestroyPipelineLayout(
1077 , (block).m_vkpipelayout[1
]
1078 , (block).m_vkalloccalls
1082 if((block).m_vkpipelayout[2
]) {
1083 vkDestroyPipelineLayout(
1085 , (block).m_vkpipelayout[2
]
1086 , (block).m_vkalloccalls
1090 if((block).m_vkshadermodule) {
1091 vkDestroyShaderModule(
1093 , (block).m_vkshadermodule
1094 , (block).m_vkalloccalls
1098}
1101#define __ae2fVK_AnnSlpWBUnMap_imp(
1108)\
1109{
1118}
1121#define __ae2fVK_AnnSlpWBMap(
1130)\
1131{
1132 ae2f_err_t v_err = 0
;
1133 ae2fVK_AnnSlpMapRangedGeneric_t v_map;
1136 assert
((ir_ptrweight));
1149 assert
(!"Got null pointer from slp");
1157 + (slp)->m_slp.m_Slp[0
].m_inc * (slp)->m_slp.m_Slp[0
].m_outc;
1162 *(r_err) |= (v_err);
1165}
1167#define __ae2fVK_AnnSlpIOUnMap_imp(
1174)\
1175{
1184}
1188#define __ae2fVK_AnnSlpIOMap(
1197)\
1198{
1199 ae2f_err_t v_err = 0
;
1200 ae2fVK_AnnSlpMapRangedGeneric_t v_map;
1204 if((slp) && (ir_ptrinp)) {
1216 assert
(!"Got null pointer from slp");
1224 + ((slp)->m_slp.m_Slp[0
].m_inc);
1229 *(r_err) |= (v_err);
1231}
1233#define __ae2fVK_AnnSlpDeltaUnMap_imp(
1240)\
1241{
1249}
1251#define __ae2fVK_AnnSlpDeltaMap(
1259)\
1260{
1261 ae2f_err_t v_err = 0
;
1262 ae2fVK_AnnSlpMapRangedGeneric_t v_map;
1264 if((slp) && (ir_ptrdelta)) {
1275 assert
(!"Got null pointer from slp");
1280 assert
(!"__ae2fVK_AnnSlpMapRangedGeneric_imp has failed.");
1281 (r_err) && (*(r_err) |= (v_err));
1283}
1285#define __ae2fVK_AnnSlpGoalUnMap_imp(
1292)\
1293{
1300}
1302#define __ae2fVK_AnnSlpGoalMap(
1310)\
1311{
1312 ae2f_err_t v_err = 0
;
1313 ae2fVK_AnnSlpMapRangedGeneric_t v_map;
1315 if((slp) && (ir_ptrgoal)) {
1326 assert
(!"Got null pointer from slp");
1331 assert
(!"__ae2fVK_AnnSlpMapRangedGeneric_imp has failed.");
1332 (r_err) && (*(r_err) |= (v_err));
1334}
1338#undef __ae2f_MACRO_GENERATED
1340#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_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_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_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(...)