Changeset 4918 in CLRX


Ignore:
Timestamp:
Aug 21, 2019, 9:48:23 PM (4 weeks ago)
Author:
matszpk
Message:

CLRadeonExtender: ROCm: Fixed first bugs in routine to parse ROCm MsgPack? metadata - first testcase passed.

Location:
CLRadeonExtender/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • CLRadeonExtender/trunk/amdbin/ROCmMetadata.cpp

    r4917 r4918  
    2222#include <cstdint>
    2323#include <string>
     24#include <iostream>
    2425#include <vector>
    2526#include <algorithm>
     
    19611962{ "read_only", "write_only", "read_write" };
    19621963
     1964static const std::pair<const char*, ROCmValueKind> rocmMPValueKindNamesMap[] =
     1965{
     1966    { "by_value", ROCmValueKind::BY_VALUE },
     1967    { "dynamic_shared_pointer", ROCmValueKind::DYN_SHARED_PTR },
     1968    { "global_buffer", ROCmValueKind::GLOBAL_BUFFER },
     1969    { "hHidden_completion_action", ROCmValueKind::HIDDEN_COMPLETION_ACTION },
     1970    { "hidden_default_queue", ROCmValueKind::HIDDEN_DEFAULT_QUEUE },
     1971    { "hidden_global_offset_x", ROCmValueKind::HIDDEN_GLOBAL_OFFSET_X },
     1972    { "hidden_global_offset_y", ROCmValueKind::HIDDEN_GLOBAL_OFFSET_Y },
     1973    { "hidden_global_offset_z", ROCmValueKind::HIDDEN_GLOBAL_OFFSET_Z },
     1974    { "hidden_multigrid_sync_arg", ROCmValueKind::HIDDEN_MULTIGRID_SYNC_ARG },
     1975    { "hidden_none", ROCmValueKind::HIDDEN_NONE },
     1976    { "hidden_printf_buffer", ROCmValueKind::HIDDEN_PRINTF_BUFFER },
     1977    { "image", ROCmValueKind::IMAGE },
     1978    { "pipe", ROCmValueKind::PIPE },
     1979    { "queue", ROCmValueKind::QUEUE },
     1980    { "sampler", ROCmValueKind::SAMPLER }
     1981};
     1982
     1983static const size_t rocmMPValueKindNamesNum =
     1984        sizeof(rocmMPValueKindNamesMap) / sizeof(std::pair<const char*, ROCmValueKind>);
     1985
    19631986static void parseROCmMetadataKernelArgMsgPack(MsgPackArrayParser& argsParser,
    19641987                        ROCmKernelArgInfo& argInfo)
     
    19701993        const size_t index = binaryFind(rocmMetadataMPKernelArgNames,
    19711994                    rocmMetadataMPKernelArgNames + rocmMetadataMPKernelArgNamesSize,
    1972                     name.c_str()) - rocmMetadataMPKernelArgNames;
     1995                    name.c_str(), CStringLess()) - rocmMetadataMPKernelArgNames;
    19731996        switch(index)
    19741997        {
     
    20322055            {
    20332056                const std::string vkind = trimStrSpaces(aParser.parseValueString());
    2034                 const size_t vkindIndex = binaryMapFind(rocmValueKindNamesMap,
    2035                             rocmValueKindNamesMap + rocmValueKindNamesNum, vkind.c_str(),
    2036                             CStringLess()) - rocmValueKindNamesMap;
     2057                const size_t vkindIndex = binaryMapFind(rocmMPValueKindNamesMap,
     2058                            rocmMPValueKindNamesMap + rocmMPValueKindNamesNum, vkind.c_str(),
     2059                            CStringLess()) - rocmMPValueKindNamesMap;
    20372060                    // if unknown kind
    20382061                    if (vkindIndex == rocmValueKindNamesNum)
     2062                    {
     2063                        std::cerr << "vkind:" << vkind << std::endl;
    20392064                        throw ParseException("Wrong argument value kind");
     2065                    }
    20402066                    argInfo.valueKind = rocmValueKindNamesMap[vkindIndex].second;
    20412067                break;
     
    20462072                const size_t vtypeIndex = binaryMapFind(rocmValueTypeNamesMap,
    20472073                        rocmValueTypeNamesMap + rocmValueTypeNamesNum, vtype.c_str(),
    2048                         CStringLess()) - rocmValueTypeNamesMap;
     2074                        CStringCaseLess()) - rocmValueTypeNamesMap;
    20492075                // if unknown type
    20502076                if (vtypeIndex == rocmValueTypeNamesNum)
     
    20942120        const size_t index = binaryFind(rocmMetadataMPKernelNames,
    20952121                    rocmMetadataMPKernelNames + rocmMetadataMPKernelNamesSize,
    2096                     name.c_str()) - rocmMetadataMPKernelNames;
     2122                    name.c_str(), CStringLess()) - rocmMetadataMPKernelNames;
    20972123       
    20982124        switch(index)
     
    21042130                {
    21052131                    ROCmKernelArgInfo arg{};
    2106                     parseROCmMetadataKernelArgMsgPack(kernelsParser, arg);
     2132                    parseROCmMetadataKernelArgMsgPack(argsParser, arg);
    21072133                    kernel.argInfos.push_back(arg);
    21082134                }
     
    22012227            {
    22022228                ROCmKernelMetadata kernel{};
     2229                kernel.initialize();
    22032230                parseROCmMetadataKernelMsgPack(kernelsParser, kernel);
    22042231                kernels.push_back(kernel);
  • CLRadeonExtender/trunk/tests/amdbin/ROCmMsgPack.cpp

    r4917 r4918  
    14501450static const cxbyte rocmMsgPackInput[] =
    14511451{
    1452     0x82, 0xae, 'a', 'm', 'd', 'h', 's', 'a', '.', 'k', 'e', 'r', 'n', 'e', 'l', 's',
    1453     0x92, 0x8f,
     1452    0x82,
     1453    0xae, 'a', 'm', 'd', 'h', 's', 'a', '.', 'k', 'e', 'r', 'n', 'e', 'l', 's',
     1454    0x91,
    14541455    // kernel A
     1456    0x8f,
    14551457    0xa5, '.', 'a', 'r', 'g', 's',
    14561458    // kernel args
    1457     0x9a, 0x88,
     1459    0x98, 0x88,
    14581460        0xae, '.', 'a', 'd', 'd', 'r', 'e', 's', 's', '_', 's', 'p', 'a', 'c', 'e',
    14591461            0xa6, 'g', 'l', 'o', 'b', 'a', 'l',
     
    14901492        0xa5, '.', 's', 'i', 'z', 'e', 0x08,
    14911493        0xab, '.', 'v', 'a', 'l', 'u', 'e', '_', 'k', 'i', 'n', 'd',
    1492             0xaf, 'h', 'i', 'd', 'd', 'e', 'n', '_', 'g', 'l', 'o', 'b', 'a', 'l', '_', 'x',
     1494            0xb6, 'h', 'i', 'd', 'd', 'e', 'n', '_', 'g', 'l', 'o', 'b', 'a', 'l', '_',
     1495            'o', 'f', 'f', 's', 'e', 't', '_', 'x',
    14931496        0xab, '.', 'v', 'a', 'l', 'u', 'e', '_', 't', 'y', 'p', 'e', 0xa3, 'i', '6', '4',
    14941497    0x84,
     
    14961499        0xa5, '.', 's', 'i', 'z', 'e', 0x08,
    14971500        0xab, '.', 'v', 'a', 'l', 'u', 'e', '_', 'k', 'i', 'n', 'd',
    1498             0xaf, 'h', 'i', 'd', 'd', 'e', 'n', '_', 'g', 'l', 'o', 'b', 'a', 'l', '_', 'y',
     1501            0xb6, 'h', 'i', 'd', 'd', 'e', 'n', '_', 'g', 'l', 'o', 'b', 'a', 'l', '_',
     1502            'o', 'f', 'f', 's', 'e', 't', '_', 'y',
    14991503        0xab, '.', 'v', 'a', 'l', 'u', 'e', '_', 't', 'y', 'p', 'e', 0xa3, 'i', '6', '4',
    15001504    0x84,
     
    15021506        0xa5, '.', 's', 'i', 'z', 'e', 0x08,
    15031507        0xab, '.', 'v', 'a', 'l', 'u', 'e', '_', 'k', 'i', 'n', 'd',
    1504             0xaf, 'h', 'i', 'd', 'd', 'e', 'n', '_', 'g', 'l', 'o', 'b', 'a', 'l', '_', 'z',
     1508            0xb6, 'h', 'i', 'd', 'd', 'e', 'n', '_', 'g', 'l', 'o', 'b', 'a', 'l', '_',
     1509            'o', 'f', 'f', 's', 'e', 't', '_', 'z',
    15051510        0xab, '.', 'v', 'a', 'l', 'u', 'e', '_', 't', 'y', 'p', 'e', 0xa3, 'i', '6', '4',
    15061511    0x85,
     
    15331538    0xb8, '.', 'm', 'a', 'x', '_', 'f', 'l', 'a', 't', '_', 'w', 'o', 'r', 'k',
    15341539        'g', 'r', 'o', 'u', 'p', '_', 's', 'i', 'z', 'e', 0xcd, 0x01, 0x00,
     1540    0xa5, '.', 'n', 'a', 'm', 'e', 0xa7, 'v', 'e', 'c', 'p', 'r', 'o', 'c',
     1541    0xbb, '.', 'p', 'r', 'i', 'v', 'a', 't', 'e', '_', 's', 'e', 'g', 'm', 'e', 'n', 't',
     1542        '_', 'f', 'i', 'x', 'e', 'd', '_', 's', 'i', 'z', 'e', 0x00,
     1543    0xab, '.', 's', 'g', 'p', 'r', '_', 'c', 'o', 'u', 'n', 't', 0x1a,
     1544    0xb1, '.', 's', 'g', 'p', 'r', '_', 's', 'p', 'i', 'l', 'l', '_',
     1545            'c', 'o', 'u', 'n', 't', 0x02,
     1546    0xa7, '.', 's', 'y', 'm', 'b', 'o', 'l',
     1547        0xaa, 'v', 'e', 'c', 'p', 'r', 'o', 'c', '.', 'k', 'd',
     1548    0xab, '.', 'v', 'g', 'p', 'r', '_', 'c', 'o', 'u', 'n', 't', 0x06,
     1549    0xb1, '.', 'v', 'g', 'p', 'r', '_', 's', 'p', 'i', 'l', 'l', '_',
     1550            'c', 'o', 'u', 'n', 't', 0x03,
     1551    0xaf, '.', 'w', 'a', 'v', 'e', 'f', 'r', 'o', 'n', 't', '_', 's', 'i', 'z', 'e', 0x20,
     1552    // version
     1553    0xae, 'a', 'm', 'd', 'h', 's', 'a', '.', 'v', 'e', 'r', 's', 'i', 'o', 'n',
     1554        0x92, 0x01, 0x00
    15351555};
    15361556
    15371557static const ROCmMsgPackMDTestCase rocmMsgPackMDTestCases[] =
    15381558{
    1539     /*{
    1540         sizeof(rocmMsgPackInput), rocmMsgPackInput, {}, true, ""
    1541     },*/
     1559    {
     1560        sizeof(rocmMsgPackInput), rocmMsgPackInput,
     1561        {
     1562            { 1, 0 },
     1563            { }, // printinfos
     1564            {
     1565                {
     1566                    "vecproc", "vecproc.kd",
     1567                    {   // args
     1568                        { "in", "float*", 8, 0, 0, ROCmValueKind::GLOBAL_BUFFER,
     1569                            ROCmValueType::FLOAT32, ROCmAddressSpace::GLOBAL,
     1570                            ROCmAccessQual::DEFAULT, ROCmAccessQual::DEFAULT,
     1571                            true, false, false, false },
     1572                        { "out", "float*", 8, 8, 0, ROCmValueKind::GLOBAL_BUFFER,
     1573                            ROCmValueType::FLOAT32, ROCmAddressSpace::GLOBAL,
     1574                            ROCmAccessQual::DEFAULT, ROCmAccessQual::DEFAULT,
     1575                            false, false, false, false },
     1576                        { "n", "int", 4, 16, 0, ROCmValueKind::BY_VALUE,
     1577                            ROCmValueType::INT32, ROCmAddressSpace::NONE,
     1578                            ROCmAccessQual::DEFAULT, ROCmAccessQual::DEFAULT,
     1579                            false, false, false, false },
     1580                        { "", "", 8, 24, 0, ROCmValueKind::HIDDEN_GLOBAL_OFFSET_X,
     1581                            ROCmValueType::INT64, ROCmAddressSpace::NONE,
     1582                            ROCmAccessQual::DEFAULT, ROCmAccessQual::DEFAULT,
     1583                            false, false, false, false },
     1584                        { "", "", 8, 32, 0, ROCmValueKind::HIDDEN_GLOBAL_OFFSET_Y,
     1585                            ROCmValueType::INT64, ROCmAddressSpace::NONE,
     1586                            ROCmAccessQual::DEFAULT, ROCmAccessQual::DEFAULT,
     1587                            false, false, false, false },
     1588                        { "", "", 8, 40, 0, ROCmValueKind::HIDDEN_GLOBAL_OFFSET_Z,
     1589                            ROCmValueType::INT64, ROCmAddressSpace::NONE,
     1590                            ROCmAccessQual::DEFAULT, ROCmAccessQual::DEFAULT,
     1591                            false, false, false, false },
     1592                        { "", "", 8, 48, 0, ROCmValueKind::HIDDEN_NONE,
     1593                            ROCmValueType::INT8, ROCmAddressSpace::GLOBAL,
     1594                            ROCmAccessQual::DEFAULT, ROCmAccessQual::DEFAULT,
     1595                            false, false, false, false },
     1596                        { "", "", 8, 56, 0, ROCmValueKind::HIDDEN_NONE,
     1597                            ROCmValueType::INT8, ROCmAddressSpace::GLOBAL,
     1598                            ROCmAccessQual::DEFAULT, ROCmAccessQual::DEFAULT,
     1599                            false, false, false, false }
     1600                    },
     1601                    "OpenCL C", { 1, 2 }, { 0, 0, 0 }, { 0, 0, 0 }, "", "",
     1602                    64, 0, 0, 8, 32, 26, 6, 256, { 0, 0, 0 }, 2, 3, ""
     1603                }
     1604            }
     1605        }, true, ""
     1606    },
    15421607};
    15431608
Note: See TracChangeset for help on using the changeset viewer.