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
35#define __ae2fVK_AnnSlpMkFndMemProp_imp(
42 memtypeidx_invalid_minus_one,
45)\
46{
48 assert
(VK_MAX_MEMORY_TYPES
<= memtypeidx_invalid_minus_one && "Invalid index does not do its thing.");
49 assert
((vkphydevmemprops).memoryTypeCount <= VK_MAX_MEMORY_TYPES
&& "Invalid memory type count.");
52 (r_memtypeidx) = (vkphydevmemprops).memoryTypeCount;
54 && (~((vkphydevmemprops).memoryTypes[(r_memtypeidx)].propertyFlags)
59 if((r_memtypeidx) == (memtypeidx_invalid_minus_one)) {
60 assert
(!"Wanted bit has not found is not supported");
64}
66#define __ae2fVK_AnnSlpMkCreatBuf(
80)\
81{
82 (v_vkbufcreatinfo).sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
83 (v_vkbufcreatinfo).pNext = 0
;
84 (v_vkbufcreatinfo).usage = (vkbufuseflags);
85 (v_vkbufcreatinfo).pQueueFamilyIndices = 0
;
86 (v_vkbufcreatinfo).queueFamilyIndexCount = 0
;
87 (v_vkbufcreatinfo).sharingMode = vksharemode;
88 (v_vkbufcreatinfo).flags = 0
;
89 (v_vkbufcreatinfo).size = (sz);
91 if(((r_vkres) = vkCreateBuffer(
99 assert
(!"Failed vkCreateBuffer");
104 assert
(!"vkCreateBuffer went null");
108}
110#define __ae2fVK_AnnSlpMkAllocVKMem_imp(
128 memtypeidx_invalid_minus_one,
131)\
132{
150 , memtypeidx_invalid_minus_one
155 vkGetBufferMemoryRequirements(
161 unless((v_vkmemreq).size >= (v_vkbufcreatinfo).size) {
162 assert
(!"Buffer size exceeds memory requirements");
167 unless((v_vkmemreq).size <=
168 (vkphydevmemprops).memoryHeaps[(vkphydevmemprops).memoryTypes[v_memtypeidx].heapIndex].size)
170 assert
(!"Requirement size exceeds memory heap size.");
175 (v_memallocinfo).sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
176 (v_memallocinfo).allocationSize = (v_vkmemreq).size;
177 (v_memallocinfo).memoryTypeIndex = (v_memtypeidx);
178 (v_memallocinfo).pNext = NULL
;
180 if(((r_vkres) = vkAllocateMemory(
187 assert
(!"vkAllocateMemory has failed.");
192 assert
(!"vkAllocateMemory went null.");
197 if(((r_vkres) = vkBindBufferMemory(
204 assert
(!"vkBindBufferMemory has failed.");
207}
209#define __ae2fVK_AnnSlpMkLoadPipeCreat_imp(
221)\
222{
224 &(pipecreat)[(idx_pipe)], 0
225 , sizeof((pipecreat)[0
])
228 unless((pipelayout)[idx_pipelayout]) {
229 assert
(!"Pipelayout went null");
234 (pipecreat)[idx_pipe].sType = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO;
235 (pipecreat)[idx_pipe].layout = ((pipelayout)[idx_pipelayout]);
236 (pipecreat)[idx_pipe].pNext = NULL
;
237 (pipecreat)[idx_pipe].basePipelineHandle = NULL
;
238 (pipecreat)[idx_pipe].basePipelineIndex = -1
;
239 (pipecreat)[idx_pipe].flags = 0
;
240 (pipecreat)[idx_pipe].stage.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
241 (pipecreat)[idx_pipe].stage.stage = VK_SHADER_STAGE_COMPUTE_BIT;
242 (pipecreat)[idx_pipe].stage.module = (shadermod);
243 (pipecreat)[idx_pipe].stage.pName = entrypoint;
244 (pipecreat)[idx_pipe].stage.pSpecializationInfo = NULL
;
245 (pipecreat)[idx_pipe].stage.flags = 0
; \
246}
248#define __ae2fVK_AnnSlpMkOnePipeLayoutVerbose_imp(
254 v_vkpipelayoutcreatinfo,
261)\
262{
263 (v_vkpushconstrange).size
266 if((szrequired) & 0b11
) {
267 (v_vkpushconstrange).size
272 if(((iv_slpptr)->m_vkres = vkCreatePipelineLayout(
274 , &(v_vkpipelayoutcreatinfo)
276 , &(iv_slpptr)->m_vkpipelayout[idx]
279 assert
(!"vkCreatePipelineLayout has failed.");
283 unless((iv_slpptr)->m_vkpipelayout[idx])
285 assert
(!"vkCreatePipelineLayout went null");
289}
292#define __ae2fVK_AnnSlpCreatDescPool_imp(
301 i_vkdescpoolcreatflags,
303 i_vkdescpoolsz_count,
305)\
306{
308 (v_descpool).m_U0.m_vkdescpoolcreatinfo
309 , (v_descpool).m_U0.m_vkdescpoolsz
314 , (iv_slp).m_vkalloccalls
315 , i_vkdescpoolcreatflags
317 , i_vkdescpoolsz_count
320}
322#define __ae2fVK_AnnSlpCreatDescPoolVerbose_imp(
327 v_vkdescpoolcreatinfo,
334 i_vkdescpoolcreatflags,
336 i_vkdescpoolsz_count,
338)\
339{
340 (v_vkdescpoolsz).type = (i_vkdesctype);
341 (v_vkdescpoolsz).descriptorCount = (i_vkdescpoolsz_count);
343 (v_vkdescpoolcreatinfo).sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
344 (v_vkdescpoolcreatinfo).flags = 0
;
345 (v_vkdescpoolcreatinfo).pNext = NULL
;
346 (v_vkdescpoolcreatinfo).flags = (i_vkdescpoolcreatflags);
347 (v_vkdescpoolcreatinfo).poolSizeCount = 1
;
348 (v_vkdescpoolcreatinfo).pPoolSizes = &(v_vkdescpoolsz);
349 (v_vkdescpoolcreatinfo).maxSets = (i_vkmaxdescsets);
351 if(((r_vkres) = vkCreateDescriptorPool(
353 , &(v_vkdescpoolcreatinfo)
358 assert
(!"vkCreateDescriptorPool has failed.");
362 assert
(!"vkCreateDescriptorPool went null.");
365}
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389#define __ae2fVK_AnnSlpMk_imp(
412)\
413{
414 assert
((vkdev) && "Vulkan device null check");
415 assert
((lossderiv) && "lossderiv must be specified.");
421 (v_mk).m_U0.m_base, (weight_opt)
422 , (bias_opt), (cache_opt)
424 , ((prm_offset) + sizeof(ae2fVK_AnnSlp) - sizeof(ae2f_AnnSlp))
426 , (act), (actderiv), (lossderiv)
427 , (learningrate), (learningrate_bias)
430 if((v_mk).m_U0.m_base.m_ptr->m_Slp[0
].m_inc > UINT32_MAX
) {
431 assert
(!"Input size is too large");
436 if((v_mk).m_U0.m_base.m_ptr->m_Slp[0
].m_outc > UINT32_MAX
) {
437 assert
(!"Output size is too large");
442 (v_mk).m_U0.m_alter.m_ptr->m_vkdev = vkdev;
443 (v_mk).m_U0.m_alter.m_ptr->m_vkalloccalls = vkalloccalls;
449 , (v_mk).m_U0.m_alter.m_ptr->m_vkres
450 , (v_mk).m_U0.m_alter.m_ptr->m_vkglobbuf
451 , (v_mk).m_U0.m_alter.m_ptr->m_vkglobdevmem
453 , (v_mk).m_U1.m_vkbufcreatinfo
454 , (v_mk).m_U1.m_vkmemallocinfo
455 , VK_BUFFER_USAGE_STORAGE_BUFFER_BIT
456 , VK_SHARING_MODE_EXCLUSIVE
458 , (v_mk).m_U2.m_vkmemreqs
460 , (v_mk).m_U0.m_alter.m_i
462 , VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
469 , sizeof(ae2f_float_t) * ((outc))
470 , (v_mk).m_U0.m_alter.m_ptr->m_vkres
471 , (v_mk).m_U0.m_alter.m_ptr->m_vklocbuf
472 , (v_mk).m_U0.m_alter.m_ptr->m_vklocdevmem
474 , (v_mk).m_U1.m_vkbufcreatinfo
475 , (v_mk).m_U1.m_vkmemallocinfo
476 , VK_BUFFER_USAGE_STORAGE_BUFFER_BIT
477 , VK_SHARING_MODE_EXCLUSIVE
479 , (v_mk).m_U2.m_vkmemreqs
481 , (v_mk).m_U0.m_alter.m_i
483 , VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
487 (v_mk).m_U2.m_S0.m_glob.binding = 0
;
489 (v_mk).m_U2.m_S0.m_glob.descriptorType
490 = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
492 (v_mk).m_U2.m_S0.m_glob.descriptorCount = 1
;
494 (v_mk).m_U2.m_S0.m_glob.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT;
495 (v_mk).m_U2.m_S0.m_glob.pImmutableSamplers = NULL
;
497 (v_mk).m_U2.m_S0.m_loc = (v_mk).m_U2.m_S0.m_glob;
498 (v_mk).m_U2.m_S0.m_loc.binding = 1
;
501 (v_mk).m_U1.m_vkdescsetlayoutcreatinfo.pBindings = (v_mk).m_U2.m_vkdescsetlayoutbind;
502 (v_mk).m_U1.m_vkdescsetlayoutcreatinfo.bindingCount = 1
;
503 (v_mk).m_U1.m_vkdescsetlayoutcreatinfo.flags = 0
;
504 (v_mk).m_U1.m_vkdescsetlayoutcreatinfo.pNext = NULL
;
505 (v_mk).m_U1.m_vkdescsetlayoutcreatinfo.sType
506 = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
508 if(((v_mk).m_U0.m_alter.m_ptr->m_vkres = vkCreateDescriptorSetLayout(
510 , &(v_mk).m_U1.m_vkdescsetlayoutcreatinfo
512 , &(v_mk).m_U0.m_alter.m_ptr->m_vkdescsetlayout
513 [ae2fVK_eAnnSlpDescLayouts_kPredict]
515 assert
(!"vkCreateDescriptorSetLayout 0 has failed");
519 unless((v_mk).m_U0.m_alter.m_ptr->m_vkdescsetlayout[0
]) {
520 assert
(!"vkCreateDescriptorSetLayout 0 went null");
525 (v_mk).m_U1.m_vkdescsetlayoutcreatinfo.bindingCount = 2
;
527 if(((v_mk).m_U0.m_alter.m_ptr->m_vkres = vkCreateDescriptorSetLayout(
529 , &(v_mk).m_U1.m_vkdescsetlayoutcreatinfo
531 , &(v_mk).m_U0.m_alter.m_ptr->m_vkdescsetlayout
532 [ae2fVK_eAnnSlpDescLayouts_kTrain]
534 assert
(!"vkCreateDescriptorSetLayout 1 has failed");
538 unless((v_mk).m_U0.m_alter.m_ptr->m_vkdescsetlayout[1
]) {
539 assert
(!"vkCreateDescriptorSetLayout 1 went null");
544 (v_mk).m_U1.m_vkpushconstrange.offset = 0
;
545 (v_mk).m_U1.m_vkpushconstrange.stageFlags = VK_SHADER_STAGE_COMPUTE_BIT;
547 (v_mk).m_U2.m_vkpipelayoutcreatinfo.sType
548 = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;
549 (v_mk).m_U2.m_vkpipelayoutcreatinfo.setLayoutCount = 1
;
550 (v_mk).m_U2.m_vkpipelayoutcreatinfo.pushConstantRangeCount = 1
;
551 (v_mk).m_U2.m_vkpipelayoutcreatinfo.pPushConstantRanges
552 = &(v_mk).m_U1.m_vkpushconstrange;
553 (v_mk).m_U2.m_vkpipelayoutcreatinfo.pSetLayouts
554 = (v_mk).m_U0.m_alter.m_ptr->m_vkdescsetlayout;
558 (v_mk).m_U1.m_vkpushconstrange
559 , (v_mk).m_U2.m_vkpipelayoutcreatinfo
561 , (v_mk).m_U0.m_alter.m_ptr
562 , ae2fVK_eAnnSlpPipeLayouts_kPredict
568 if ((v_mk).m_U0.m_alter.m_ptr->m_vkres != VK_SUCCESS) {
569 assert
(!"__ae2fVK_AnnSlpMkOnePipeLayout_imp 0 has failed.");
575 (v_mk).m_U1.m_vkpushconstrange
576 , (v_mk).m_U2.m_vkpipelayoutcreatinfo
578 , (v_mk).m_U0.m_alter.m_ptr
579 , ae2fVK_eAnnSlpPipeLayouts_kTrain
580 , sizeof(ae2f_float_t) * 2
585 if ((v_mk).m_U0.m_alter.m_ptr->m_vkres != VK_SUCCESS) {
586 assert
(!"__ae2fVK_AnnSlpMkOnePipeLayout_imp 1 has failed.");
591
592
593
594
595
596
597
598
599
600
601
602
603
604
606 assert
((vkcldeclaration) && "vkcldeclaration is null");
607 assert
((vkcldefinition) && "vkcldefinition is null");
611 (v_mk).m_U3.m_openclsrc_v
618 if((v_mk).m_reterr) {
619 assert
(!"__ae2fVK_AnnSlpMkCLSPV_imp has failed.");
623 assert
((v_mk).m_U3.m_openclsrc);
626 (v_mk).m_U1.m_spirv = NULL
;
627 (v_mk).m_U0.m_spirv_len = 0
;
629 assert
((v_mk).m_U0.m_alter.m_ptr);
631 switch(clspvCompileFromSourcesString(
635 const char** restrict
636 , (&(v_mk).m_U3.m_openclsrc)
640 "-cl-fast-relaxed-math "
641 "-cl-single-precision-constant"
642 , &(v_mk).m_U1.m_spirv_c
643 , &(v_mk).m_U0.m_spirv_len
649 assert
(!"clspvCompileFromSourcesString has failed.");
652 case CLSPV_OUT_OF_HOST_MEM:
654 assert
(!"clspvCompileFromSourcesString has failed its allocation.");
658 case CLSPV_INVALID_ARG:
660 assert
(!"clspvCompileFromSourcesString found arguments invalid.");
664 case CLSPV_SUCCESS: break;
667 free((v_mk).m_U3.m_openclsrc);
668 free((v_mk).m_U2.m_log);
671 assert
((v_mk).m_U0.m_base.m_ptr && "clspvCompileFromSourcesString has done something weird");
673 (v_mk).m_U2.m_vkshadermodcreatinfo.pNext = NULL
;
674 (v_mk).m_U2.m_vkshadermodcreatinfo.codeSize
675 = (v_mk).m_U0.m_spirv_len;
676 (v_mk).m_U2.m_vkshadermodcreatinfo.pCode
677 = (v_mk).m_U1.m_spirv_u32;
678 (v_mk).m_U2.m_vkshadermodcreatinfo.flags = 0
;
679 (v_mk).m_U2.m_vkshadermodcreatinfo.sType
680 = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
682 if(((v_mk).m_U0.m_alter.m_ptr->m_vkres = vkCreateShaderModule(
684 , &(v_mk).m_U2.m_vkshadermodcreatinfo
686 , &(v_mk).m_U0.m_alter.m_ptr->m_vkshadermodule
689 assert
(!"vkCreateShaderModule has failed.");
693 unless((v_mk).m_U0.m_alter.m_ptr->m_vkshadermodule)
695 assert
(!"vkCreateShaderModule has produced NULL.");
700 free((v_mk).m_U1.m_spirv);
705 , (v_mk).m_U2.m_vkcomputepipecreatinfo
706 , (v_mk).m_U0.m_alter.m_ptr->m_vkpipelayout
707 , (v_mk).m_U0.m_alter.m_ptr->m_vkshadermodule
709 , (ae2fVK_eAnnSlpPipes_kFollow)
710 , (ae2fVK_eAnnSlpPipeLayouts_kTrain)
716 , (v_mk).m_U2.m_vkcomputepipecreatinfo
717 , (v_mk).m_U0.m_alter.m_ptr->m_vkpipelayout
718 , (v_mk).m_U0.m_alter.m_ptr->m_vkshadermodule
720 , (ae2fVK_eAnnSlpPipes_kFit)
721 , (ae2fVK_eAnnSlpPipeLayouts_kTrain)
727 , (v_mk).m_U2.m_vkcomputepipecreatinfo
728 , (v_mk).m_U0.m_alter.m_ptr->m_vkpipelayout
729 , (v_mk).m_U0.m_alter.m_ptr->m_vkshadermodule
731 , ae2fVK_eAnnSlpPipes_kPredict
732 , ae2fVK_eAnnSlpPipeLayouts_kPredict
738 , (v_mk).m_U2.m_vkcomputepipecreatinfo
739 , (v_mk).m_U0.m_alter.m_ptr->m_vkpipelayout
740 , (v_mk).m_U0.m_alter.m_ptr->m_vkshadermodule
742 , (ae2fVK_eAnnSlpPipes_kTrain)
743 , (ae2fVK_eAnnSlpPipeLayouts_kTrain)
746 if (((v_mk).m_U0.m_alter.m_ptr->m_vkres
747 = vkCreateComputePipelines(
750 , ae2fVK_eAnnSlpPipes_LEN
751 , (v_mk).m_U2.m_vkcomputepipecreatinfo
753 , (v_mk).m_U0.m_alter.m_ptr->m_vkpipeline
757 assert
(!"vkCreateComputePipelines has failed.");
763 assert
((v_mk).m_reterr == ae2f_errGlob_OK && "Returned error flag has set up");
764 if((v_mk).m_U0.m_alter.m_ptr->m_vkres) {
765 assert
(!"Vulkan result check for validation");
768}
771
772
773
774#define __ae2fVK_AnnSlpMkCLSPVVerbose_imp(
784) \
785{
786 if(!((r_handle) = calloc(
788 , strlen(i_first) + sizeof(
793 assert
(!"_ae2fVK_AnnSlpMkCLSPV_imp has failed.");
802}
805#define __ae2fVK_AnnSlpMap_imp(
813)\
814{
815 if((slp).m_vkres != VK_SUCCESS) {
816 assert
(!"Result flag is not valid.");
819 assert
((slp).m_vkdev);
820 assert
((slp).m_vkglobdevmem);
824 if(((slp).m_vkres = vkMapMemory(
826 , (slp).m_vkglobdevmem
832 assert
(!"vkMapMemory has failed.");
837 assert
(!"vkMapMemory went null.");
842}
848#define __ae2fVK_AnnSlpMapRangedGeneric_imp(
859)\
860{
861 assert
((iv_slp).m_vkres == VK_SUCCESS);
862 assert
((iv_slp).m_vkdev);
863 assert
((iv_slp).m_vkglobdevmem);
867 if(((iv_slp).m_vkres = vkMapMemory(
869 , (iv_slp).m_vkglobdevmem
870 , (v_vkmapmemrange).offset = (i_off)
871 , (v_vkmapmemrange).size = (i_sz)
877 assert
(!"vkMapMemory has failed.");
882 assert
(!"vkMapMemory went null.");
887 (v_vkmapmemrange).memory = (iv_slp).m_vkglobdevmem;
888 (v_vkmapmemrange).pNext = NULL
;
889 (v_vkmapmemrange).sType = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE;
891 if (((iv_slp).m_vkres = vkInvalidateMappedMemoryRanges(
897 assert
(!"vkInvalidateMappedMemoryRanges has failed.");
902 unless((iv_slp).m_vkres == VK_SUCCESS) {
905}
909#define __ae2fVK_AnnSlpUnMap_imp(
915){
916 assert
((slp).m_vkdev);
917 assert
((slp).m_vkglobdevmem);
918 vkUnmapMemory((slp).m_vkdev, (slp).m_vkglobdevmem); \
919}
921#define __ae2fVK_AnnSlpUnMapRanged_imp(
930)\
931{
932 assert
((vi_slp).m_vkres == VK_SUCCESS);
934 (v_out).memory = (vi_slp).m_vkglobdevmem;
935 (v_out).offset = (i_off);
936 (v_out).pNext = NULL
;
937 (v_out).size = (i_sz);
938 (v_out).sType = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE;
941 if (((vi_slp).m_vkres = vkFlushMappedMemoryRanges(
947 assert
(!"vkFlushMappedMemoryRanges has failed.");
953}
955#define __ae2fVK_AnnSlpClean_imp(
961)\
962{
963 assert
((block).m_vkdev && "Double free is suspected.");
965 if((block).m_vkdev) {
966 if((block).m_vkglobbuf) {
969 , (block).m_vkglobbuf
970 , (block).m_vkalloccalls
974 if((block).m_vklocbuf) {
978 , (block).m_vkalloccalls
982 if((block).m_vkglobdevmem) {
985 , (block).m_vkglobdevmem
986 , (block).m_vkalloccalls
990 if((block).m_vklocdevmem) {
993 , (block).m_vklocdevmem
994 , (block).m_vkalloccalls
998 if((block).m_vkpipeline[0
]) {
1001 , (block).m_vkpipeline[0
]
1002 , (block).m_vkalloccalls
1006 if((block).m_vkpipeline[1
]) {
1009 , (block).m_vkpipeline[1
]
1010 , (block).m_vkalloccalls
1014 if((block).m_vkpipeline[2
]) {
1017 , (block).m_vkpipeline[2
]
1018 , (block).m_vkalloccalls
1022 if((block).m_vkpipeline[3
]) {
1025 , (block).m_vkpipeline[3
]
1026 , (block).m_vkalloccalls
1030 if((block).m_vkdescsetlayout[0
]) {
1031 vkDestroyDescriptorSetLayout(
1033 , (block).m_vkdescsetlayout[0
]
1034 , (block).m_vkalloccalls
1038 if((block).m_vkdescsetlayout[1
]) {
1039 vkDestroyDescriptorSetLayout(
1041 , (block).m_vkdescsetlayout[1
]
1042 , (block).m_vkalloccalls
1046 if((block).m_vkpipelayout[0
]) {
1047 vkDestroyPipelineLayout(
1049 , (block).m_vkpipelayout[0
]
1050 , (block).m_vkalloccalls
1054 if((block).m_vkpipelayout[1
]) {
1055 vkDestroyPipelineLayout(
1057 , (block).m_vkpipelayout[1
]
1058 , (block).m_vkalloccalls
1062 if((block).m_vkpipelayout[2
]) {
1063 vkDestroyPipelineLayout(
1065 , (block).m_vkpipelayout[2
]
1066 , (block).m_vkalloccalls
1070 if((block).m_vkshadermodule) {
1071 vkDestroyShaderModule(
1073 , (block).m_vkshadermodule
1074 , (block).m_vkalloccalls
1078}
1081#define __ae2fVK_AnnSlpWBUnMap_imp(
1088)\
1089{
1098}
1101#define __ae2fVK_AnnSlpWBMap(
1110)\
1111{
1112 ae2f_err_t v_err = 0
;
1113 ae2fVK_AnnSlpMapRangedGeneric_t v_map;
1116 assert
((ir_ptrweight));
1129 assert
(!"Got null pointer from slp");
1142 *(r_err) |= (v_err);
1145}
1147#define __ae2fVK_AnnSlpIOUnMap_imp(
1155{
1164}
1168#define __ae2fVK_AnnSlpIOMap(
1177)\
1178{
1179 ae2f_err_t v_err = 0
;
1180 ae2fVK_AnnSlpMapRangedGeneric_t v_map;
1184 if((slp) && (ir_ptrinp)) {
1197 assert
(!"Got null pointer from slp");
1210 *(r_err) |= (v_err);
1212}
1214#define __ae2fVK_AnnSlpDeltaUnMap_imp(
1221)\
1222{
1230}
1232#define __ae2fVK_AnnSlpDeltaMap(
1240)\
1241{
1242 ae2f_err_t v_err = 0
;
1243 ae2fVK_AnnSlpMapRangedGeneric_t v_map;
1245 if((slp) && (ir_ptrdelta)) {
1256 assert
(!"Got null pointer from slp");
1261 assert
(!"__ae2fVK_AnnSlpMapRangedGeneric_imp has failed.");
1262 (r_err) && (*(r_err) |= (v_err));
1264}
1266#define __ae2fVK_AnnSlpGoalUnMap_imp(
1273)\
1274{
1281}
1283#define __ae2fVK_AnnSlpGoalMap(
1291)\
1292{
1293 ae2f_err_t v_err = 0
;
1294 ae2fVK_AnnSlpMapRangedGeneric_t v_map;
1296 if((slp) && (ir_ptrgoal)) {
1307 assert
(!"Got null pointer from slp");
1312 assert
(!"__ae2fVK_AnnSlpMapRangedGeneric_imp has failed.");
1313 (r_err) && (*(r_err) |= (v_err));
1315}
1319#undef __ae2f_MACRO_GENERATED
1321#define __ae2f_MACRO_GENERATED 0
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_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 __ae2fVK_AnnMlpBiasOff(i_depth, i_outc)
#define __ae2fVK_AnnMlpUnMapRanged_imp
ae2fVK_AnnSlpUnMap_t ae2fVK_AnnMlpUnMap_t
#define __ae2fVK_AnnMlpDeltaStreamSz(i_depth, i_outc)
#define __ae2fVK_AnnMlpMapRangedGeneric_imp
#define __ae2fVK_AnnMlpGoalSz(i_depth, i_outc)
VkMappedMemoryRange ae2fVK_AnnMlpMapRangedGeneric_t
#define __ae2fVK_AnnMlpMdlOff(...)
#define __ae2fVK_AnnMlpOutStreamSz(i_depth, i_outc)
#define __ae2fVK_AnnMlpWeightOff(i_depth, i_outc)
#define __ae2fVK_AnnMlpMdlSz(i_depth,...)
#define __ae2fVK_AnnMlpGoalOff(i_depth, i_outc)
ae2fVK_AnnSlpDescPoolCmdMk_t ae2fVK_AnnMlpDescPoolCmdMk_t
#define __ae2fVK_AnnMlpOutStreamOff(i_depth, i_outc)
#define __ae2fVK_AnnMlpWeightSz(i_depth, i_outc)
#define __ae2fVK_AnnMlpBiasSz(i_depth, i_outc)
#define __ae2fVK_AnnMlpGlobMemSz(i_depth, i_outc)
#define __ae2fVK_AnnMlpDeltaStreamOff(i_depth, i_outc)
#define __ae2fVK_AnnSlpGoalSz(i_inp, i_out)
ae2fVK_eAnnSlpDescLayouts
@ ae2fVK_eAnnSlpDescLayouts_kPredict
@ ae2fVK_eAnnSlpDescLayouts_LEN
@ ae2fVK_eAnnSlpDescLayouts_kTrain
#define __ae2fVK_AnnSlpBiasOff(i_inp, i_out)
#define __ae2fVK_AnnSlpGoalOff(i_inp, i_out)
#define __ae2fVK_AnnSlpOutOff(i_inp, i_out)
#define __ae2fVK_AnnSlpInpSz(i_inp,...)
VkMappedMemoryRange ae2fVK_AnnSlpMapRangedGeneric_t
#define __ae2fVK_AnnSlpBiasSz(i_inp, i_out)
#define __ae2fVK_AnnSlpWeightSz(i_inp, i_out)
#define __ae2fVK_AnnSlpInpOff(i_inp, i_out)
ae2fVK_eAnnSlpPipeLayouts
@ ae2fVK_eAnnSlpPipeLayouts_LEN
@ ae2fVK_eAnnSlpPipeLayouts_kTrain
@ ae2fVK_eAnnSlpPipeLayouts_kPredict
@ ae2fVK_eAnnSlpPipeLayouts_kFit
#define __ae2fVK_AnnSlpDeltaSz(i_inp, i_out)
#define __ae2fVK_AnnSlpWeightOff(i_inp, i_out)
@ ae2fVK_eAnnSlpDescPools_kPredict
@ ae2fVK_eAnnSlpDescPools_kTrain
@ ae2fVK_eAnnSlpDescPools_LEN
#define __ae2fVK_AnnSlpGlobSz(i_inp, i_out)
#define __ae2fVK_AnnSlpOutSz(i_inp, i_out)
VkMappedMemoryRange ae2fVK_AnnSlpUnMap_t
char STATIC_ASSERT_ae2fVK_AnnSlpMkU2_vkdescsetlayoutbind_sz[sizeof(ae2fVK_AnnSlpMkU2S0_t)==sizeof(VkDescriptorSetLayoutBinding) *2 ? 1 :-1]
@ ae2fVK_eAnnSlpPipes_kFit
@ ae2fVK_eAnnSlpPipes_kTrain
@ ae2fVK_eAnnSlpPipes_kPredict
@ ae2fVK_eAnnSlpPipes_LEN
This is the end of the value, which typically means the count of actual kernel used.
@ ae2fVK_eAnnSlpPipes_kFollow
#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 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...
ae2fVK_AnnSlpDescPoolCmd ae2fVK_AnnMlpDescPoolCmd
ae2fVK_AnnSlpCreatDescPool_t ae2fVK_AnnMlpCreatDescPool_t
ae2fVK_AnnSlpDescPool ae2fVK_AnnMlpDescPool
#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_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_AnnSlpMk_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