MCPcopy Create free account
hub / github.com/clMathLibraries/clBLAS / writeIncludes

Function writeIncludes

src/library/blas/AutoGemm/Includes.py:427–482  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

425# Write Includes
426################################################################################
427def writeIncludes():
428 print("AutoGemm.py: Generating include files.")
429 if not os.path.exists( Common.getIncludePath() ):
430 os.makedirs( Common.getIncludePath() )
431
432 kernelSourceIncludes = KernelSourceIncludes()
433 kernelBinaryIncludes = KernelBinaryIncludes()
434 clKernelIncludes = ClKernelIncludes()
435 kernelSourceBuildOptions = KernelSourceBuildOptions()
436 kernelBinaryBuildOptions = KernelBinaryBuildOptions()
437 cppKernelEnumeration = CppKernelEnumeration()
438
439
440 # for each precision
441 kernel = KernelParameters.KernelParameters()
442 for precision in AutoGemmParameters.precisions:
443 kernel.precision = precision
444 cppKernelEnumeration.newPrecision(precision)
445
446 # valid tiles for this precision
447 tiles = AutoGemmParameters.getTilesForPrecision(precision)
448
449 # add tiles for this precision to Cpp
450 for tile in tiles:
451 cppKernelEnumeration.addTile(tile)
452
453 # for non tile parameters
454 for order in AutoGemmParameters.orders:
455 kernel.order = order
456 for transA in AutoGemmParameters.transposes[precision]:
457 kernel.transA = transA
458 for transB in AutoGemmParameters.transposes[precision]:
459 kernel.transB = transB
460 for beta in AutoGemmParameters.betas:
461 kernel.beta = beta
462
463 # add this nonTile combo for this precision to Cpp
464 cppKernelEnumeration.addNonTile(kernel)
465
466 # for tile parameters
467 for tile in tiles:
468 kernel.useTile(tile)
469 kernelSourceIncludes.addKernel(kernel)
470 kernelBinaryIncludes.addKernel(kernel)
471 kernelSourceBuildOptions.addKernel(kernel)
472 kernelBinaryBuildOptions.addKernel(kernel)
473 clKernelIncludes.addKernel(kernel)
474 cppKernelEnumeration.addKernel(kernel)
475
476 # save written files
477 kernelSourceIncludes.writeToFile()
478 kernelBinaryIncludes.writeToFile()
479 clKernelIncludes.writeToFile()
480 kernelSourceBuildOptions.writeToFile()
481 kernelBinaryBuildOptions.writeToFile()
482 cppKernelEnumeration.writeToFile()
483
484

Callers 1

Includes.pyFile · 0.85

Calls 15

newPrecisionMethod · 0.95
addTileMethod · 0.95
addNonTileMethod · 0.95
useTileMethod · 0.95
addKernelMethod · 0.95
addKernelMethod · 0.95
addKernelMethod · 0.95
addKernelMethod · 0.95
addKernelMethod · 0.95
addKernelMethod · 0.95
writeToFileMethod · 0.95
writeToFileMethod · 0.95

Tested by

no test coverage detected