12c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang/*
22c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang * Copyright (C) 2015 The Android Open Source Project
32c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang *
42c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang * Licensed under the Apache License, Version 2.0 (the "License");
52c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang * you may not use this file except in compliance with the License.
62c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang * You may obtain a copy of the License at
72c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang *
82c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang *      http://www.apache.org/licenses/LICENSE-2.0
92c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang *
102c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang * Unless required by applicable law or agreed to in writing, software
112c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang * distributed under the License is distributed on an "AS IS" BASIS,
122c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
132c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang * See the License for the specific language governing permissions and
142c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang * limitations under the License.
152c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang */
162c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang
172c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangpackage com.example.android.rs.blasbenchmark;
182c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang
192c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport android.app.Activity;
202c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport android.view.View;
212c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangimport android.util.Log;
222c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang
232c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wangpublic class BlasTestList {
242c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang    private final String TAG = "BLAS";
252c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang    public final String RESULT_FILE = "blas_benchmark_result.csv";
262c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang
272c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang    /**
282c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang     * Define enum type for test names
292c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang     */
302c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang    public enum TestName {
312c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang
322c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        SGEMM_SMALL ("SGEMM Test Small", 1.f),
332c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        SGEMM_MEDIUM ("SGEMM Test Medium", 1.f),
342c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        SGEMM_LARGE ("SGEMM Test LARGE", 1.f),
352c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        BNNM_SMALL ("8Bit GEMM Test Small", 1.f),
362c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        BNNM_MEDIUM ("8Bit GEMM Test Medium", 1.f),
372c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        BNNM_LARGE ("8Bit GEMM Test Large", 1.f);
382c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang
392c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        private final String name;
402c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        public final float baseline;
412c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang
422c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        private TestName(String s, float base) {
432c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang            name = s;
442c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang            baseline = base;
452c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        }
462c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        private TestName(String s) {
472c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang            name = s;
482c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang            baseline = 1.f;
492c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        }
502c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang
512c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        // return quoted string as displayed test name
522c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        public String toString() {
532c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang            return name;
542c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        }
552c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang    }
562c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang
572c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang    static TestBase newTest(TestName testName) {
582c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        switch(testName) {
592c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        case SGEMM_SMALL:
602c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang            return new SGEMMTest(1);
612c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        case SGEMM_MEDIUM:
622c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang            return new SGEMMTest(2);
632c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        case SGEMM_LARGE:
642c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang            return new SGEMMTest(3);
652c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        case BNNM_SMALL:
662c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang            return new BNNMTest(1);
672c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        case BNNM_MEDIUM:
682c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang            return new BNNMTest(2);
692c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        case BNNM_LARGE:
702c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang            return new BNNMTest(3);
712c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        }
722c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang
732c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang        return null;
742c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang    }
752c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang}
762c9b10f9b72ebec0b1861532e4ccb6e68ac769a4Miao Wang
77