#1056 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: 100 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: ######################################## # NT - ######################################## - - # ProblemType OperationType: GEMM DataType: s TransposeA: False TransposeB: False UseBeta: True Batched: True ######################################## # NT - standard 1Blocks/Inst # - DLRM dataset ######################################## - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [16, 16, 4, 1] - ThreadTile: - [ 8, 16 ] - [ 8, 32 ] - [ 12,16 ] - WorkGroup: - [ 16, 16, 1 ] - DepthU: [ 16,8 ] - VectorWidth: [4,2] - DisableVgprOverlapping: [True,False] - WaveSeparateGlobalReadA: [True,False] - WaveSeparateGlobalReadB: [True,False] - GlobalReadVectorWidth: [4] - InnerUnroll: [1,2,4] - ScheduleIterAlg: [1,3] - OptNoLoadLoop: [0,1,2] - StoreVectorWidth: [-1,2,4] BenchmarkForkParameters: JoinParameters: BenchmarkJoinParameters: BenchmarkFinalParameters: - ProblemSizes: - Exact: [ 3200,1024,1,2048,3232,3232,3232,1088] - Exact: [ 560,1600,1,1024,592,592,592,1056] - Exact: [ 1600,512,1,1024,1632,1632,1632,544] - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [16, 16, 4, 1] - ThreadTile: - [ 6, 32 ] - [ 4, 32 ] - [ 4, 64 ] - WorkGroup: - [ 32, 8, 1 ] - DepthU: [ 8,16 ] - VectorWidth: [4,2] - FractionalLoad: [1,0] - DisableVgprOverlapping: [True,False] - WaveSeparateGlobalReadA: [True,False] - WaveSeparateGlobalReadB: [True,False] - GlobalReadVectorWidth: [4] - InnerUnroll: [1,2,4] - ScheduleIterAlg: [1,3] - OptNoLoadLoop: [0,1,2] - StoreVectorWidth: [-1,2,4] BenchmarkForkParameters: JoinParameters: BenchmarkJoinParameters: BenchmarkFinalParameters: - ProblemSizes: - Exact: [ 3200,1024,1,2048,3232,3232,3232,1088] - Exact: [ 560,1600,1,1024,592,592,592,1056] - Exact: [ 1600,512,1,1024,1632,1632,1632,544] - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [16, 16, 4, 1] - ThreadTile: - [ 3, 128 ] - [ 2, 128 ] - [ 2, 64 ] - WorkGroup: - [ 64, 4, 1 ] - DepthU: [ 8,16 ] - VectorWidth: [4,2] - FractionalLoad: [1,0] - DisableVgprOverlapping: [True,False] - WaveSeparateGlobalReadA: [True,False] - WaveSeparateGlobalReadB: [True,False] - GlobalReadVectorWidth: [4] - InnerUnroll: [1,2,4] - ScheduleIterAlg: [1,3] - OptNoLoadLoop: [0,1,2] - StoreVectorWidth: [-1,2,4] BenchmarkForkParameters: JoinParameters: BenchmarkJoinParameters: BenchmarkFinalParameters: - ProblemSizes: - Exact: [ 3200,1024,1,2048,3232,3232,3232,1088] - Exact: [ 560,1600,1,1024,592,592,592,1056] - Exact: [ 1600,512,1,1024,1632,1632,1632,544] ######################################## # NT - standard 4Blocks/Inst # - DLRM dataset ######################################## - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [16, 16, 1, 4] - ThreadTile: - [ 2, 16 ] - [ 2, 32 ] - [ 2, 48 ] - [ 3, 16 ] - [ 3, 32 ] - WorkGroup: - [ 64, 4, 1 ] - DepthU: [ 16,8 ] - VectorWidth: [4,2] - DisableVgprOverlapping: [True,False] - WaveSeparateGlobalReadA: [True,False] - WaveSeparateGlobalReadB: [True,False] - GlobalReadVectorWidth: [4] - InnerUnroll: [1,2,4] - ScheduleIterAlg: [1,3] - OptNoLoadLoop: [0,1,2] - StoreVectorWidth: [-1,2,4] BenchmarkForkParameters: JoinParameters: BenchmarkJoinParameters: BenchmarkFinalParameters: - ProblemSizes: - Exact: [ 3200,1024,1,2048,3232,3232,3232,1088] - Exact: [ 560,1600,1,1024,592,592,592,1056] - Exact: [ 1600,512,1,1024,1632,1632,1632,544] - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [16, 16, 1, 4] - ThreadTile: - [ 2, 16 ] - [ 3, 128 ] - [ 3, 64 ] - WorkGroup: - [ 32, 8, 1 ] - DepthU: [ 8,16 ] - VectorWidth: [4,2] - FractionalLoad: [1,0] - DisableVgprOverlapping: [True,False] - WaveSeparateGlobalReadA: [True,False] - WaveSeparateGlobalReadB: [True,False] - GlobalReadVectorWidth: [4] - InnerUnroll: [1,2,4] - ScheduleIterAlg: [1,3] - OptNoLoadLoop: [0,1,2] - StoreVectorWidth: [-1,2,4] BenchmarkForkParameters: JoinParameters: BenchmarkJoinParameters: BenchmarkFinalParameters: - ProblemSizes: - Exact: [ 3200,1024,1,2048,3232,3232,3232,1088] - Exact: [ 560,1600,1,1024,592,592,592,1056] - Exact: [ 1600,512,1,1024,1632,1632,1632,544] ######################################## # NT - standard 2Blocks/Inst # - medium_4 dataset ######################################## - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [16, 16, 1, 4] - ThreadTile: - [ 2, 16 ] - [ 4, 16 ] - [ 6, 16 ] - WorkGroup: - [ 32, 8, 1 ] - DepthU: [ 8,16 ] - VectorWidth: [4,2] - FractionalLoad: [1,0] - 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: [ 3200,1024,1,2048,3232,3232,3232,1088] - Exact: [ 560,1600,1,1024,592,592,592,1056] - Exact: [ 1600,512,1,1024,1632,1632,1632,544] - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [16, 16, 1, 4] - ThreadTile: - [ 2, 16 ] - [ 2, 32 ] - [ 3, 32 ] - WorkGroup: - [ 64, 4, 1 ] - DepthU: [ 8,16 ] - VectorWidth: [4,2] - FractionalLoad: [1,0] - 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: [ 3200,1024,1,2048,3232,3232,3232,1088] - Exact: [ 560,1600,1,1024,592,592,592,1056] - Exact: [ 1600,512,1,1024,1632,1632,1632,544] ######################################## # NT - standard 1Blocks/Inst # - 32x32x1x2 # - medium_4 dataset ######################################## - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [32, 32, 2, 1] - ThreadTile: - [ 1, 32 ] - [ 2, 32 ] - [ 3, 32 ] - [ 1, 64 ] - [ 2, 64 ] - WorkGroup: - [ 64, 4, 1 ] - DepthU: [ 8,16 ] - VectorWidth: [4,2] - FractionalLoad: [1,0] - 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: [ 3200,1024,1,2048,3232,3232,3232,1088] - Exact: [ 560,1600,1,1024,592,592,592,1056] - Exact: [ 1600,512,1,1024,1632,1632,1632,544] ######################################## # NT - standard 2Blocks/Inst # - 32x32x1x2 # - medium_4 dataset - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [32, 32, 1, 2] - ThreadTile: - [ 1, 32 ] - [ 2, 32 ] - [ 3, 32 ] - WorkGroup: - [ 64, 4, 1 ] - DepthU: [ 8,16 ] - VectorWidth: [4,2] - FractionalLoad: [1,0] - 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: [ 3200,1024,1,2048,3232,3232,3232,1088] - Exact: [ 560,1600,1,1024,592,592,592,1056] - Exact: [ 1600,512,1,1024,1632,1632,1632,544] - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [32, 32, 2, 1] - ThreadTile: - [ 2, 32 ] - [ 1, 64 ] - [ 3, 32 ] - [ 4, 32 ] - [ 6, 32 ] - WorkGroup: - [ 16, 16, 1 ] - DepthU: [ 8,16 ] - VectorWidth: [4,2] - FractionalLoad: [1,0] - 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: [ 3200,1024,1,2048,3232,3232,3232,1088] - Exact: [ 560,1600,1,1024,592,592,592,1056] - Exact: [ 1600,512,1,1024,1632,1632,1632,544] - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [32, 32, 2, 1] - ThreadTile: - [ 2, 32 ] - [ 1, 32 ] - WorkGroup: - [ 64, 4, 1 ] - DepthU: [ 8,16 ] - VectorWidth: [4,2] - FractionalLoad: [1,0] - 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: [ 560,1600,1,1024,592,592,592,1056] - Exact: [ 1600,512,1,1024,1632,1632,1632,544] - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [16, 16, 4, 1] - ThreadTile: - [ 5, 16 ] - WorkGroup: - [ 16, 16, 1 ] - DepthU: [ 8,16 ] - VectorWidth: [4,2] - FractionalLoad: [1,0] - 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: [ 560,1600,1,1024,592,592,592,1056] - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [16, 16, 4, 1] - ThreadTile: - [ 5, 16 ] - WorkGroup: - [ 16, 16, 1 ] - DepthU: [ 8,16 ] - VectorWidth: [4,2] - FractionalLoad: [1,0] - 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: [ 1600, 512, 1,1024,1632,1632,1632,544] - Exact: [ 1600, 512, 1,1024,1632,1632,1664,544] - # BenchmarkProblemSizeGroup - Standard InitialSolutionParameters: BenchmarkCommonParameters: - KernelLanguage: ["Assembly"] - EdgeType: ["ShiftPtr"] - PrefetchLocalRead: [True] - PrefetchGlobalRead: [True] ForkParameters: - MatrixInstruction: - [16, 16, 4, 1] - ThreadTile: - [ 1, 64 ] - WorkGroup: - [ 64, 4, 1 ] - WorkGroupMapping: [1,8,16] - DepthU: [ 8,16 ] - VectorWidth: [4,2] - FractionalLoad: [1,0] - 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: [ 1600, 512, 1,1024,1632,1632,1632,544] - Exact: [ 1600, 512, 1,1024,1632,1632,1664,544] - Exact: [ 560,1600,1,1024,592,592,592,1056] ######################################## LibraryLogic: ScheduleName: "arcturus" DeviceNames: ["Device 7380", "Device 7388", "Device 738c", "Device 7390"] ArchitectureName: "gfx908"