Changeset 4985 in CLRX


Ignore:
Timestamp:
Sep 20, 2019, 4:17:59 PM (4 weeks ago)
Author:
matszpk
Message:

CLRadeonExtender: AsmROCm: Initialize required fields in metadata from kernel config and calculate kernarg size for MetadataV3 format.

Location:
CLRadeonExtender/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • CLRadeonExtender/trunk/amdasm/AsmROCmFormat.cpp

    r4983 r4985  
    24342434        {
    24352435            if (output.useMetadataInfo)
     2436            {
    24362437                // calculate kernel arg size
    2437                 config.kernargSegmentSize = calculateKernelArgSize(
    2438                         output.metadataInfo.kernels[i].argInfos);
     2438                if (!output.metadataV3Format)
     2439                    config.kernargSegmentSize = calculateKernelArgSize(
     2440                            output.metadataInfo.kernels[i].argInfos);
     2441                else
     2442                {
     2443                    // for metadataV3 format
     2444                    config.kernargSegmentSize = 0;
     2445                    if (!output.metadataInfo.kernels[i].argInfos.empty())
     2446                    {
     2447                        const ROCmKernelArgInfo& lastArg =
     2448                            output.metadataInfo.kernels[i].argInfos.back();
     2449                        config.kernargSegmentSize = lastArg.offset + lastArg.size;
     2450                    }
     2451                }
     2452            }
    24392453            else
    24402454                config.kernargSegmentSize = 0;
     
    25632577        if (config.runtimeLoaderKernelSymbol == BINGEN64_DEFAULT)
    25642578            config.runtimeLoaderKernelSymbol = 0;
     2579       
     2580        ROCmKernelMetadata& kmd = output.metadataInfo.kernels[i];
     2581        if (kmd.kernargSegmentSize == BINGEN64_NOTSUPPLIED)
     2582            kmd.kernargSegmentSize = config.kernargSegmentSize;
     2583        if (kmd.sgprsNum == BINGEN_NOTSUPPLIED)
     2584            kmd.sgprsNum = sgprsNum;
     2585        if (kmd.vgprsNum == BINGEN_NOTSUPPLIED)
     2586            kmd.vgprsNum = vgprsNum;
     2587        if (kmd.kernargSegmentAlign == BINGEN64_NOTSUPPLIED)
     2588            kmd.kernargSegmentAlign = config.kernargSegmentAlignment;
     2589        if (kmd.privateSegmentFixedSize == BINGEN64_NOTSUPPLIED)
     2590            kmd.privateSegmentFixedSize = config.workitemPrivateSegmentSize;
     2591        if (kmd.groupSegmentFixedSize == BINGEN64_NOTSUPPLIED)
     2592            kmd.groupSegmentFixedSize = config.workgroupGroupSegmentSize;
     2593        if (kmd.wavefrontSize == BINGEN_NOTSUPPLIED)
     2594            kmd.wavefrontSize = 1U<<config.wavefrontSize;
    25652595       
    25662596        if (!output.llvm10BinFormat)
  • CLRadeonExtender/trunk/tests/amdasm/AsmROCmFormat.cpp

    r4880 r4985  
    14701470      VecTypeHint=
    14711471      RuntimeHandle=
    1472       KernargSegmentSize=18446744073709551614
    1473       KernargSegmentAlign=18446744073709551614
    1474       GroupSegmentFixedSize=18446744073709551614
    1475       PrivateSegmentFixedSize=18446744073709551614
    1476       WaveFrontSize=4294967294
    1477       SgprsNum=4294967294
    1478       VgprsNum=4294967294
     1472      KernargSegmentSize=64
     1473      KernargSegmentAlign=4
     1474      GroupSegmentFixedSize=0
     1475      PrivateSegmentFixedSize=0
     1476      WaveFrontSize=64
     1477      SgprsNum=11
     1478      VgprsNum=1
    14791479      SpilledSgprs=4294967294
    14801480      SpilledVgprs=4294967294
Note: See TracChangeset for help on using the changeset viewer.