summaryrefslogtreecommitdiff
path: root/external/clBLAS/src/library/tools/tune/toolslib.h
blob: 9e08a9a108ea2c6ea0992a85b62f4437ac8d1435 (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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/* ************************************************************************
 * Copyright 2013 Advanced Micro Devices, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ************************************************************************/


#ifndef TOOLSLIB_H__
#define TOOLSLIB_H__

#ifdef __APPLE__
#include <OpenCL/cl.h>
#else
#include <CL/cl.h>
#endif

#include <defbool.h>
#include <devinfo.h>
#include <cltypes.h>

#include <granulation.h>
#include <kernel_extra.h>

// Interface to access to saved data

#define GF_SUCCESS          0
#define GF_ERROR            1
#define GF_INVALID_CACHE    2
#define GF_CORRUPT_FILE     3
#define GF_KERNEL_NOT_FOUND 4


/*
 * FIXME: It's a kludge to dedicated processing a case when matrix leading
 *        dimension is aligned on the bank size
 */
#define BANK_ALIGNED_CASE_RECORD_IDX 5


typedef int dimension;

void
initStorageCache(void);

void
destroyStorageCache(void);

int
getGranularityInfo (
    TargetDevice* tdev,
    const char* pattName,
    const DataType dt,
    const KernelExtraFlags kflag,
    dimension dim,
    SubproblemDim* sdim,
    PGranularity*
    pgran,
    double* time);

int
getKernelInfo (
    TargetDevice* tdev,
    const char* pattName,
    const DataType dt,
    const KernelExtraFlags kflag,
    dimension dim,
    unsigned char** bufer,
    size_t* sizeBufer);

int getDimensionCount(TargetDevice* tdev, int func);

dimension
getDimensionID (
    TargetDevice* tdev,
    int func,
    size_t M,
    size_t N,
    size_t K);

#endif /* TOOLSLIB_H__ */