"vscode:/vscode.git/clone" did not exist on "e1bc2da9d97ddc3051775246c752dea71e236429"
verify_onnx.cpp 1.5 KB
Newer Older
Paul's avatar
Paul committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

#include <rtg/onnx.hpp>

#include <rtg/cpu/cpu_target.hpp>
#include <rtg/miopen/miopen_target.hpp>
#include <rtg/miopen/hip.hpp>
#include <rtg/generate.hpp>
#include <miopen/miopen.h>
#include <rtg/miopen/miopen.hpp>

rtg::argument run_cpu(std::string file)
{
    auto p = rtg::parse_onnx(file);
    p.compile(rtg::cpu::cpu_target{});
    auto s      = p.get_parameter_shape("Input3");
    auto input3 = rtg::generate_argument(s);
    auto out    = p.eval({{"Input3", input3}});
    std::cout << p << std::endl;
    return out;
}

rtg::argument run_gpu(std::string file)
{
    auto p = rtg::parse_onnx(file);
    p.compile(rtg::cpu::cpu_target{});
    auto s      = p.get_parameter_shape("Input3");
    auto input3 = rtg::miopen::to_gpu(rtg::generate_argument(s));

    auto output = rtg::miopen::to_gpu(rtg::generate_argument(p.get_parameter_shape("output")));
    auto handle = rtg::miopen::make_obj<rtg::miopen::miopen_handle>(&miopenCreate);

Paul's avatar
Paul committed
32
    auto out = p.eval({{"Input3", input3}, {"output", output}});
Paul's avatar
Paul committed
33
34
35
36
37
38
39
40
41
42
43
    std::cout << p << std::endl;
    return rtg::miopen::from_gpu(out);
}

int main(int argc, char const* argv[])
{
    if(argc > 1)
    {
        std::string file = argv[1];
        auto x           = run_cpu(file);
        auto y           = run_gpu(file);
Paul's avatar
Paul committed
44
45
46
47
48
        if(x == y)
        {
            std::cout << "Passed" << std::endl;
        }
        else
Paul's avatar
Paul committed
49
50
51
52
53
54
55
        {
            std::cout << "Not equal" << std::endl;
            std::cout << x << std::endl;
            std::cout << y << std::endl;
        }
    }
}