# 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: [ 4096,9520,1,1024,1056,1056,1088,1088] - Exact: [ 4096,8160,1,1024,1056,1056,1088,1088] - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [16, 16, 1, 4] - ThreadTile: - [ 2, 16 ] - [ 1, 32 ] - [ 2, 32 ] - WorkGroup: - [ 64, 4, 1 ] - TransposeLDS: [1] - WaveSeparateGlobalReadA: [True,False] - WaveSeparateGlobalReadB: [True,False] - LdsBlockSizePerPad: [128,256] - LdsPadA: [2,4] - LdsPadB: [2,4] - DepthU: [ 16 ] - VectorWidth: [4,2] - DisableVgprOverlapping: [False] - GlobalReadVectorWidth: [4] - InnerUnroll: [1,2] - ScheduleIterAlg: [1,3] - OptNoLoadLoop: [1,2] - StoreVectorWidth: [-1,2,4] BenchmarkForkParameters: JoinParameters: BenchmarkJoinParameters: BenchmarkFinalParameters: - ProblemSizes: - Exact: [ 4096,9520,1,1024,1056,1056,1088,1088] - Exact: [ 4096,8160,1,1024,1056,1056,1088,1088] - # 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: [False] - GlobalReadVectorWidth: [4] - InnerUnroll: [1,2] - ScheduleIterAlg: [1,3] - OptNoLoadLoop: [1,2] - StoreVectorWidth: [-1,2,4] BenchmarkForkParameters: JoinParameters: BenchmarkJoinParameters: BenchmarkFinalParameters: - ProblemSizes: - Exact: [ 4096,9520,1,1024,1056,1056,1088,1088] - Exact: [ 4096,8160,1,1024,1056,1056,1088,1088] - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [16, 16, 1, 4] - ThreadTile: - [ 2, 16 ] - [ 1, 32 ] - [ 2, 32 ] - WorkGroup: - [ 64, 4, 1 ] - TransposeLDS: [0] - DepthU: [ 16 ] - VectorWidth: [4,2] - DisableVgprOverlapping: [False] - GlobalReadVectorWidth: [4] - InnerUnroll: [1,2] - ScheduleIterAlg: [1,3] - OptNoLoadLoop: [1,2] - StoreVectorWidth: [-1,2,4] BenchmarkForkParameters: JoinParameters: BenchmarkJoinParameters: BenchmarkFinalParameters: - ProblemSizes: - Exact: [ 4096,9520,1,1024,1056,1056,1088,1088] - Exact: [ 4096,8160,1,1024,1056,1056,1088,1088] - # 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: [False] - GlobalReadVectorWidth: [4] - WaveSeparateGlobalReadA: [True,False] - WaveSeparateGlobalReadB: [True,False] - InnerUnroll: [1,2] - ScheduleIterAlg: [1,3] - OptNoLoadLoop: [1,2] - StoreVectorWidth: [-1,2,4] BenchmarkForkParameters: JoinParameters: BenchmarkJoinParameters: BenchmarkFinalParameters: - ProblemSizes: - Exact: [ 4096,9520,1,1024,1056,1056,1088,1088] - Exact: [ 4096,8160,1,1024,1056,1056,1088,1088] - # 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: [2,4] - LdsPadB: [2,4] - DepthU: [ 16 ] - VectorWidth: [4,2] - DisableVgprOverlapping: [True,False] - GlobalReadVectorWidth: [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: [ 4096,9520,1,1024,1056,1056,1088,1088] - Exact: [ 4096,8160,1,1024,1056,1056,1088,1088] - # 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: [4] - InnerUnroll: [1,2] - ScheduleIterAlg: [1,3] - OptNoLoadLoop: [1,2] - StoreVectorWidth: [-1,2,4] BenchmarkForkParameters: JoinParameters: BenchmarkJoinParameters: BenchmarkFinalParameters: - ProblemSizes: - Exact: [ 4096,9520,1,1024,1056,1056,1088,1088] - Exact: [ 4096,8160,1,1024,1056,1056,1088,1088] - # 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: [4] - InnerUnroll: [1,2] - ScheduleIterAlg: [1,3] - OptNoLoadLoop: [1,2] - StoreVectorWidth: [-1,2,4] BenchmarkForkParameters: JoinParameters: BenchmarkJoinParameters: BenchmarkFinalParameters: - ProblemSizes: - Exact: [ 4096,9520,1,1024,1056,1056,1088,1088] - Exact: [ 4096,8160,1,1024,1056,1056,1088,1088] - # 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: [False] - GlobalReadVectorWidth: [4] - InnerUnroll: [1,2] - ScheduleIterAlg: [1,3] - OptNoLoadLoop: [1,2] - StoreVectorWidth: [-1,2,4] BenchmarkForkParameters: JoinParameters: BenchmarkJoinParameters: BenchmarkFinalParameters: - ProblemSizes: - Exact: [ 4096,9520,1,1024,1056,1056,1088,1088] - Exact: [ 4096,8160,1,1024,1056,1056,1088,1088] ######################################## LibraryLogic: ScheduleName: "arcturus" DeviceNames: ["Device 7380", "Device 7388", "Device 738c", "Device 7390"] ArchitectureName: "gfx908"