# A config to generate a fast kernel(s) for DLRM model GEMM problem sizes # problem sizes comes from Kaggle and Medium_4 data sets # update parameters to produce best kernel(S) # to keep number of kernel produced minimum # 1) add new sections if certain paramters are more conducive to certain problem sizes # 2) create separate sections for replacement kernel(s) GlobalParameters: MinimumRequiredVersion: 4.14.0 PrintLevel: 1 ForceRedoBenchmarkProblems: True ForceRedoLibraryLogic: True ForceRedoLibraryClient: True CMakeBuildType: Release EnqueuesPerSync: 1 SyncsPerBenchmark: 1 LibraryPrintDebug: False NumElementsToValidate: 1 ValidationMaxToPrint: 0 ValidationPrintValids: False ShortNames: False MergeFiles: True Platform: 0 Device: 0 KernelTime: True PinClocks: False SleepPercent: 0 PrintSolutionRejectionReason: True DataInitTypeA: 3 DataInitTypeB: 3 DataInitTypeBeta: 0 DataInitTypeAlpha: 1 PrintTensorA: 0 PrintTensorB: 0 PrintTensorD: 0 BenchmarkProblems: ######################################## # TN - ######################################## - - # ProblemType OperationType: GEMM DataType: s TransposeA: True TransposeB: False UseBeta: True Batched: True ######################################## # TN - standard 2Blocks/Inst # - medium_4 dataset ######################################## - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [16, 16, 4, 1] - ThreadTile: - [ 8, 16 ] - [ 8, 32 ] - WorkGroup: - [ 16, 16, 1 ] - TransposeLDS: [1] - LdsBlockSizePerPad: [128,256] - LdsPadA: [4] - LdsPadB: [4] - DepthU: [ 16 ] - VectorWidth: [4,2] - DisableVgprOverlapping: [True,False] - WaveSeparateGlobalReadA: [True,False] - WaveSeparateGlobalReadB: [True,False] - GlobalReadVectorWidth: [4] - InnerUnroll: [1,2] - ScheduleIterAlg: [1,3] - OptNoLoadLoop: [1,2] - StoreVectorWidth: [-1,2,4] BenchmarkForkParameters: JoinParameters: BenchmarkJoinParameters: BenchmarkFinalParameters: - ProblemSizes: - Exact: [ 1024,1600,1,1024,1056,1056,1088,1088] - Exact: [ 1024,1600,1,1024,1056,1056,1056,1088] - Exact: [ 1024,1600,1,560,1056,1056,592,592] - Exact: [ 1024,1600,1,560,1056,1056,592,560] - Exact: [ 2048,512,1,100,2080,2080,132,164] - Exact: [ 2048,512,1,100,2080,2080,132,132] - Exact: [ 1024,200,1,560,1056,1056,592,560] - Exact: [ 1024,200,1,560,1056,1056,592,592] - Exact: [ 2048,512,1,74,2080,2080,106,106] - Exact: [ 2048,512,1,74,2080,2080,74,106] - Exact: [ 512,32768,1,13,544,544,32,64] - Exact: [ 256,32768,1,512,288,288,544,576] - Exact: [ 128,32768,1,512,160,160,544,576] - Exact: [ 1024,32768,1,479,1056,1056,511,543] - Exact: [ 1024,32768,1,1024,1056,1056,1024,1024] - Exact: [ 512,32768,1,1024,544,544,1024,1024] - Exact: [ 256,32768,1,512,544,544,512,512] - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [16, 16, 4, 1] - ThreadTile: - [ 1, 16 ] - [ 2, 16 ] - WorkGroup: - [ 32, 8, 1 ] - TransposeLDS: [1] - LdsBlockSizePerPad: [128,256] - LdsPadA: [4] - LdsPadB: [4] - DepthU: [ 16,32 ] - VectorWidth: [4,2] - DisableVgprOverlapping: [True,False] - WaveSeparateGlobalReadA: [True,False] - WaveSeparateGlobalReadB: [True,False] - GlobalReadVectorWidth: [2,4] - InnerUnroll: [1,2] - ScheduleIterAlg: [1,3] - OptNoLoadLoop: [1,2] - StoreVectorWidth: [-1,2,4] BenchmarkForkParameters: JoinParameters: BenchmarkJoinParameters: BenchmarkFinalParameters: - ProblemSizes: - Exact: [ 2048,512,1,100,2080,2080,132,164] - Exact: [ 2048,512,1,100,2080,2080,132,132] - Exact: [ 1024,200,1,560,1056,1056,592,560] - Exact: [ 1024,200,1,560,1056,1056,592,592] - Exact: [ 2048,512,1,74,2080,2080,106,106] - Exact: [ 2048,512,1,74,2080,2080,74,106] - Exact: [ 512,32768,1,13,544,544,32,64] - Exact: [ 256,32768,1,512,288,288,544,576] - Exact: [ 128,32768,1,512,160,160,544,576] - Exact: [ 1024,32768,1,479,1056,1056,511,543] - Exact: [ 1024,32768,1,1024,1056,1056,1024,1024] - Exact: [ 512,32768,1,1024,544,544,1024,1024] - Exact: [ 256,32768,1,512,544,544,512,512] - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [16, 16, 4, 1] - ThreadTile: - [ 1, 16 ] - [ 2, 16 ] - WorkGroup: - [ 64, 4, 1 ] - TransposeLDS: [1] - LdsBlockSizePerPad: [128,256] - LdsPadA: [4] - LdsPadB: [4] - DepthU: [ 16,32 ] - VectorWidth: [4,2] - DisableVgprOverlapping: [True,False] - WaveSeparateGlobalReadA: [True,False] - WaveSeparateGlobalReadB: [True,False] - GlobalReadVectorWidth: [2,4] - InnerUnroll: [1,2] - ScheduleIterAlg: [1,3] - OptNoLoadLoop: [1,2] - StoreVectorWidth: [-1,2,4] BenchmarkForkParameters: JoinParameters: BenchmarkJoinParameters: BenchmarkFinalParameters: - ProblemSizes: - Exact: [ 2048,512,1,100,2080,2080,132,164] - Exact: [ 2048,512,1,100,2080,2080,132,132] - Exact: [ 1024,200,1,560,1056,1056,592,560] - Exact: [ 1024,200,1,560,1056,1056,592,592] - Exact: [ 2048,512,1,74,2080,2080,106,106] - Exact: [ 2048,512,1,74,2080,2080,74,106] - Exact: [ 512,32768,1,13,544,544,32,64] - Exact: [ 256,32768,1,512,288,288,544,576] - Exact: [ 128,32768,1,512,160,160,544,576] - Exact: [ 1024,32768,1,479,1056,1056,511,543] - Exact: [ 1024,32768,1,1024,1056,1056,1024,1024] - Exact: [ 512,32768,1,1024,544,544,1024,1024] - Exact: [ 256,32768,1,512,544,544,512,512] - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [16, 16, 1, 4] - ThreadTile: - [ 1, 16 ] - [ 2, 16 ] - [ 1, 32 ] - [ 2, 32 ] - WorkGroup: - [ 64, 4, 1 ] - TransposeLDS: [1] - WaveSeparateGlobalReadA: [True,False] - WaveSeparateGlobalReadB: [True,False] - LdsBlockSizePerPad: [128,256] - LdsPadA: [4] - LdsPadB: [4] - DepthU: [ 16 ] - VectorWidth: [4,2] - DisableVgprOverlapping: [True,False] - GlobalReadVectorWidth: [2,4] - InnerUnroll: [1,2] - ScheduleIterAlg: [1,3] - OptNoLoadLoop: [1,2] - StoreVectorWidth: [-1,2,4] BenchmarkForkParameters: JoinParameters: BenchmarkJoinParameters: BenchmarkFinalParameters: - ProblemSizes: - Exact: [ 1024,1600,1,1024,1056,1056,1088,1088] - Exact: [ 1024,1600,1,1024,1056,1056,1056,1088] - Exact: [ 1024,1600,1,560,1056,1056,592,592] - Exact: [ 1024,1600,1,560,1056,1056,592,560] - Exact: [ 2048,512,1,100,2080,2080,132,164] - Exact: [ 2048,512,1,100,2080,2080,132,132] - Exact: [ 1024,200,1,560,1056,1056,592,560] - Exact: [ 1024,200,1,560,1056,1056,592,592] - Exact: [ 2048,512,1,74,2080,2080,106,106] - Exact: [ 2048,512,1,74,2080,2080,74,106] - Exact: [ 512,32768,1,13,544,544,32,64] - Exact: [ 256,32768,1,512,288,288,544,576] - Exact: [ 128,32768,1,512,160,160,544,576] - Exact: [ 1024,32768,1,479,1056,1056,511,543] - Exact: [ 1024,32768,1,1024,1056,1056,1024,1024] - Exact: [ 512,32768,1,1024,544,544,1024,1024] - Exact: [ 256,32768,1,512,544,544,512,512] - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [16, 16, 4, 1] - ThreadTile: - [ 8, 16 ] - [ 8, 32 ] - WorkGroup: - [ 16, 16, 1 ] - TransposeLDS: [0] - DepthU: [ 16 ] - VectorWidth: [4,2] - DisableVgprOverlapping: [True,False] - GlobalReadVectorWidth: [2,4] - InnerUnroll: [1,2] - ScheduleIterAlg: [1,3] - OptNoLoadLoop: [1,2] - StoreVectorWidth: [-1,2,4] BenchmarkForkParameters: JoinParameters: BenchmarkJoinParameters: BenchmarkFinalParameters: - ProblemSizes: - Exact: [ 1024,1600,1,1024,1056,1056,1088,1088] - Exact: [ 1024,1600,1,1024,1056,1056,1056,1088] - Exact: [ 1024,1600,1,560,1056,1056,592,592] - Exact: [ 1024,1600,1,560,1056,1056,592,560] - Exact: [ 2048,512,1,100,2080,2080,132,164] - Exact: [ 2048,512,1,100,2080,2080,132,132] - Exact: [ 1024,200,1,560,1056,1056,592,560] - Exact: [ 1024,200,1,560,1056,1056,592,592] - Exact: [ 2048,512,1,74,2080,2080,106,106] - Exact: [ 2048,512,1,74,2080,2080,74,106] - Exact: [ 512,32768,1,13,544,544,32,64] - Exact: [ 256,32768,1,512,288,288,544,576] - Exact: [ 128,32768,1,512,160,160,544,576] - Exact: [ 1024,32768,1,479,1056,1056,511,543] - Exact: [ 1024,32768,1,1024,1056,1056,1024,1024] - Exact: [ 512,32768,1,1024,544,544,1024,1024] - Exact: [ 256,32768,1,512,544,544,512,512] - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [16, 16, 1, 4] - ThreadTile: - [ 1, 16 ] - [ 2, 16 ] - [ 1, 32 ] - [ 2, 32 ] - WorkGroup: - [ 64, 4, 1 ] - TransposeLDS: [0] - DepthU: [ 16 ] - VectorWidth: [4,2] - DisableVgprOverlapping: [True,False] - GlobalReadVectorWidth: [2,4] - InnerUnroll: [1,2] - ScheduleIterAlg: [1,3] - OptNoLoadLoop: [1,2] - StoreVectorWidth: [-1,2,4] BenchmarkForkParameters: JoinParameters: BenchmarkJoinParameters: BenchmarkFinalParameters: - ProblemSizes: - Exact: [ 1024,1600,1,1024,1056,1056,1088,1088] - Exact: [ 1024,1600,1,1024,1056,1056,1056,1088] - Exact: [ 1024,1600,1,560,1056,1056,592,592] - Exact: [ 1024,1600,1,560,1056,1056,592,560] - Exact: [ 2048,512,1,100,2080,2080,132,164] - Exact: [ 2048,512,1,100,2080,2080,132,132] - Exact: [ 1024,200,1,560,1056,1056,592,560] - Exact: [ 1024,200,1,560,1056,1056,592,592] - Exact: [ 2048,512,1,74,2080,2080,106,106] - Exact: [ 2048,512,1,74,2080,2080,74,106] - Exact: [ 512,32768,1,13,544,544,32,64] - Exact: [ 256,32768,1,512,288,288,544,576] - Exact: [ 128,32768,1,512,160,160,544,576] - Exact: [ 1024,32768,1,479,1056,1056,511,543] - Exact: [ 1024,32768,1,1024,1056,1056,1024,1024] - Exact: [ 512,32768,1,1024,544,544,1024,1024] - Exact: [ 256,32768,1,512,544,544,512,512] - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [32, 32, 2, 1] - ThreadTile: - [ 2, 32 ] - [ 4, 32 ] - WorkGroup: - [ 16, 16, 1 ] - TransposeLDS: [1] - LdsBlockSizePerPad: [128,256] - LdsPadA: [4] - LdsPadB: [4] - DepthU: [ 16 ] - VectorWidth: [4,2] - DisableVgprOverlapping: [True,False] - GlobalReadVectorWidth: [2,4] - WaveSeparateGlobalReadA: [True,False] - InnerUnroll: [1,2] - ScheduleIterAlg: [1,3] - OptNoLoadLoop: [1,2] - StoreVectorWidth: [-1,2,4] BenchmarkForkParameters: JoinParameters: BenchmarkJoinParameters: BenchmarkFinalParameters: - ProblemSizes: - Exact: [ 1024,1600,1,1024,1056,1056,1088,1088] - Exact: [ 1024,1600,1,1024,1056,1056,1056,1088] - Exact: [ 1024,1600,1,560,1056,1056,592,592] - Exact: [ 1024,1600,1,560,1056,1056,592,560] - Exact: [ 2048,512,1,100,2080,2080,132,164] - Exact: [ 2048,512,1,100,2080,2080,132,132] - Exact: [ 1024,200,1,560,1056,1056,592,560] - Exact: [ 1024,200,1,560,1056,1056,592,592] - Exact: [ 2048,512,1,74,2080,2080,106,106] - Exact: [ 2048,512,1,74,2080,2080,74,106] - Exact: [ 512,32768,1,13,544,544,32,64] - Exact: [ 256,32768,1,512,288,288,544,576] - Exact: [ 128,32768,1,512,160,160,544,576] - Exact: [ 1024,32768,1,479,1056,1056,511,543] - Exact: [ 1024,32768,1,1024,1056,1056,1024,1024] - Exact: [ 512,32768,1,1024,544,544,1024,1024] - Exact: [ 256,32768,1,512,544,544,512,512] - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [32, 32, 1, 2] - ThreadTile: - [ 1, 32 ] - [ 2, 32 ] - WorkGroup: - [ 64, 4, 1 ] - TransposeLDS: [1] - LdsBlockSizePerPad: [128,256] - LdsPadA: [4] - LdsPadB: [4] - DepthU: [ 16 ] - VectorWidth: [4,2] - DisableVgprOverlapping: [True,False] - GlobalReadVectorWidth: [2,4] - InnerUnroll: [1,2] - WaveSeparateGlobalReadA: [True,False] - WaveSeparateGlobalReadB: [True,False] - ScheduleIterAlg: [1,3] - OptNoLoadLoop: [1,2] - StoreVectorWidth: [-1,2,4] BenchmarkForkParameters: JoinParameters: BenchmarkJoinParameters: BenchmarkFinalParameters: - ProblemSizes: - Exact: [ 1024,1600,1,1024,1056,1056,1088,1088] - Exact: [ 1024,1600,1,1024,1056,1056,1056,1088] - Exact: [ 1024,1600,1,560,1056,1056,592,592] - Exact: [ 1024,1600,1,560,1056,1056,592,560] - Exact: [ 2048,512,1,100,2080,2080,132,164] - Exact: [ 2048,512,1,100,2080,2080,132,132] - Exact: [ 1024,200,1,560,1056,1056,592,560] - Exact: [ 1024,200,1,560,1056,1056,592,592] - Exact: [ 2048,512,1,74,2080,2080,106,106] - Exact: [ 2048,512,1,74,2080,2080,74,106] - Exact: [ 512,32768,1,13,544,544,32,64] - Exact: [ 256,32768,1,512,288,288,544,576] - Exact: [ 128,32768,1,512,160,160,544,576] - Exact: [ 1024,32768,1,479,1056,1056,511,543] - Exact: [ 1024,32768,1,1024,1056,1056,1024,1024] - Exact: [ 512,32768,1,1024,544,544,1024,1024] - Exact: [ 256,32768,1,512,544,544,512,512] - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [32, 32, 2, 1] - ThreadTile: - [ 2, 32 ] - [ 4, 32 ] - WorkGroup: - [ 16, 16, 1 ] - TransposeLDS: [0] - DepthU: [ 16 ] - VectorWidth: [4,2] - DisableVgprOverlapping: [True,False] - GlobalReadVectorWidth: [2,4] - InnerUnroll: [1,2] - ScheduleIterAlg: [1,3] - OptNoLoadLoop: [1,2] - StoreVectorWidth: [-1,2,4] BenchmarkForkParameters: JoinParameters: BenchmarkJoinParameters: BenchmarkFinalParameters: - ProblemSizes: - Exact: [ 1024,1600,1,1024,1056,1056,1088,1088] - Exact: [ 1024,1600,1,1024,1056,1056,1056,1088] - Exact: [ 1024,1600,1,560,1056,1056,592,592] - Exact: [ 1024,1600,1,560,1056,1056,592,560] - Exact: [ 2048,512,1,100,2080,2080,132,164] - Exact: [ 2048,512,1,100,2080,2080,132,132] - Exact: [ 1024,200,1,560,1056,1056,592,560] - Exact: [ 1024,200,1,560,1056,1056,592,592] - Exact: [ 2048,512,1,74,2080,2080,106,106] - Exact: [ 2048,512,1,74,2080,2080,74,106] - Exact: [ 512,32768,1,13,544,544,32,64] - Exact: [ 256,32768,1,512,288,288,544,576] - Exact: [ 128,32768,1,512,160,160,544,576] - Exact: [ 1024,32768,1,479,1056,1056,511,543] - Exact: [ 1024,32768,1,1024,1056,1056,1024,1024] - Exact: [ 512,32768,1,1024,544,544,1024,1024] - Exact: [ 256,32768,1,512,544,544,512,512] - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [32, 32, 1, 2] - ThreadTile: - [ 1, 32 ] - [ 2, 32 ] - WorkGroup: - [ 64, 4, 1 ] - TransposeLDS: [0] - DepthU: [ 16 ] - VectorWidth: [4,2] - DisableVgprOverlapping: [True,False] - GlobalReadVectorWidth: [2,4] - InnerUnroll: [1,2] - ScheduleIterAlg: [1,3] - OptNoLoadLoop: [1,2] - StoreVectorWidth: [-1,2,4] BenchmarkForkParameters: JoinParameters: BenchmarkJoinParameters: BenchmarkFinalParameters: - ProblemSizes: - Exact: [ 1024,1600,1,1024,1056,1056,1088,1088] - Exact: [ 1024,1600,1,1024,1056,1056,1056,1088] - Exact: [ 1024,1600,1,560,1056,1056,592,592] - Exact: [ 1024,1600,1,560,1056,1056,592,560] - Exact: [ 2048,512,1,100,2080,2080,132,164] - Exact: [ 2048,512,1,100,2080,2080,132,132] - Exact: [ 1024,200,1,560,1056,1056,592,560] - Exact: [ 1024,200,1,560,1056,1056,592,592] - Exact: [ 2048,512,1,74,2080,2080,106,106] - Exact: [ 2048,512,1,74,2080,2080,74,106] - Exact: [ 512,32768,1,13,544,544,32,64] - Exact: [ 256,32768,1,512,288,288,544,576] - Exact: [ 128,32768,1,512,160,160,544,576] - Exact: [ 1024,32768,1,479,1056,1056,511,543] - Exact: [ 1024,32768,1,1024,1056,1056,1024,1024] - Exact: [ 512,32768,1,1024,544,544,1024,1024] - Exact: [ 256,32768,1,512,544,544,512,512] - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [16, 16, 4, 1] - ThreadTile: - [ 1, 32 ] - [ 2, 32 ] - WorkGroup: - [ 64, 4, 1 ] - TransposeLDS: [1] - WaveSeparateGlobalReadA: [True,False] - WaveSeparateGlobalReadB: [True,False] - LdsBlockSizePerPad: [128,256] - LdsPadA: [4] - LdsPadB: [4] - DepthU: [ 16 ] - VectorWidth: [4,2] - DisableVgprOverlapping: [True,False] - GlobalReadVectorWidth: [2,4] - InnerUnroll: [1,2] - ScheduleIterAlg: [1,3] - OptNoLoadLoop: [1,2] - StoreVectorWidth: [-1,2,4] BenchmarkForkParameters: JoinParameters: BenchmarkJoinParameters: BenchmarkFinalParameters: - ProblemSizes: - Exact: [ 1024,200,1,560,1056,1056,592,560] - Exact: [ 1024,200,1,560,1056,1056,592,592] ######################################## LibraryLogic: ScheduleName: "arcturus" DeviceNames: ["Device 7380", "Device 7388", "Device 738c", "Device 7390"] ArchitectureName: "gfx908"