aboutsummaryrefslogtreecommitdiffstats
path: root/lib/oeqa/runtime/miutils/tests/mkl_dnn_test.py
blob: 13afd1a446e01fafff5513fcd09233ee0f7ac3df (plain)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
class MkldnnTest(object):
    mkldnn_target_test_filename = 'mkl-dnn-c'

    def __init__(self, target):
        self.target = target

    def tear_down(self):
        self.target.run('rm /tmp/%s' % self.mkldnn_target_test_filename)
        
    def test_mkldnn_can_compile_and_execute(self):
        mkldnn_src_dir = '/usr/src/debug/mkl-dnn/'
        mkldnn_src_test_filename = 'api.c'
        mkldnn_src_test_file = ''
        
        (status, output) = self.target.run('cd %s; find -name %s' % (mkldnn_src_dir, mkldnn_src_test_filename))
        if status:
            return status, output

        mkldnn_src_test_file = os.path.join(mkldnn_src_dir, output)
        (status, output) = self.target.run('gcc %s -o /tmp/%s -ldnnl' % (mkldnn_src_test_file, self.mkldnn_target_test_filename))
        if status:
            return status, output

        (status, output) = self.target.run('cd /tmp; ./%s' % self.mkldnn_target_test_filename)
        return status, output
   
    def test_mkldnn_benchdnn_package_available(self):
        (status, output) = self.target.run('ls /usr/bin/mkl-dnn/tests/benchdnn')
        return status, output
    
    def _run_mkldnn_benchdnn_test(self, cmd):
        (status, output) = self.target.run('cd /usr/bin/mkl-dnn/tests/benchdnn; %s' % cmd)
        return status, output

    def test_mkldnn_conv_api(self):
        return self._run_mkldnn_benchdnn_test('./benchdnn --conv --batch=inputs/conv/test_conv_3d')        

    def test_mkldnn_bnorm_api(self):
        return self._run_mkldnn_benchdnn_test('./benchdnn --bnorm --batch=inputs/bnorm/test_bnorm_regressions')
        
    def test_mkldnn_deconv_api(self):
        return self._run_mkldnn_benchdnn_test('./benchdnn --deconv --batch=inputs/deconv/test_deconv_bfloat16')
        
    def test_mkldnn_ip_api(self):
        return self._run_mkldnn_benchdnn_test('./benchdnn --ip --batch=inputs/ip/test_ip_bfloat16')
        
    def test_mkldnn_reorder_api(self):
        return self._run_mkldnn_benchdnn_test('./benchdnn --reorder --batch=inputs/reorder/test_reorder_bfloat16')
        
    def test_mkldnn_rnn_api(self):
        # test_rnn_inference was not yet ready and was expected to fail
        # while waiting it to be ready, use test_rnn_small for now
        return self._run_mkldnn_benchdnn_test('./benchdnn --rnn --batch=inputs/rnn/test_rnn_small')
        
    def test_mkldnn_shuffle_api(self):
        return self._run_mkldnn_benchdnn_test('./benchdnn --shuffle --batch=inputs/shuffle/test_shuffle_bfloat16')