ROCm/Tensile

mixed precision casues failure to benchmark

NevesLucas opened this issue · 2 comments

setting up the problem type as:

    - # ProblemType
      OperationType: ConvolutionForward
      HighPrecisionAccumulate: False
      DataType: h
      ComputeDataType: h
      DestDataType: s
      TransposeA: False
      TransposeB: False
      UseBeta: False
      Batched: True
      ConvolutionConfig:
        - TensorAFormat: NCHW
        - TensorBFormat: KCYX
        - TensorDFormat: NCHW
        - Filter: 1x1
        - Stride: 1x1
        - Dilation: 1x1
        - GroupCount: 1
        - PackedSpatialDims: 1
        - PackedFilterDims: 1
        - UnrollOnChannel: 1

Causes valid kernels to be generated, but throws
Invalid combination of data types: a: Half, b: Half, c: Float, d: Float, alpha: Half, beta: Half
when benchmarking begins.

Is it even possible to assign different datatypes as above? if not a more graceful exit message would be helpful, waiting until all kernels are generated before erroring out can take a long time.

Hi @NevesLucas , It is possible to have mixed datatypes. Not all combinations are admissible, though. To enable mixed-precision types HighPrecisionAccumulate must be True (yours is False). Please let me know if that solves the error message.

The current data types you have is not working, you can modify it as follows:
DataType: h
ComputeDataType: s
DestDataType: s