  OpenCL is an attractive model for heterogeneous high-performance computing
systems, with wide support from hardware vendors and significant performance
portability. To support efficient scheduling on HPC systems it is necessary to
perform accurate performance predictions for OpenCL workloads on varied compute
devices, which is challenging due to diverse computation, communication and
memory access characteristics which result in varying performance between
devices. The Architecture Independent Workload Characterization (AIWC) tool can
be used to characterize OpenCL kernels according to a set of
architecture-independent features. This work presents a methodology where AIWC
features are used to form a model capable of predicting accelerator execution
times. We used this methodology to predict execution times for a set of 37
computational kernels running on 15 different devices representing a broad
range of CPU, GPU and MIC architectures. The predictions are highly accurate,
differing from the measured experimental run-times by an average of only 1.2%,
and correspond to actual execution time mispredictions of 9 {\mu}s to 1 sec
according to problem size. A previously unencountered code can be instrumented
once and the AIWC metrics embedded in the kernel, to allow performance
prediction across the full range of modelled devices. The results suggest that
this methodology supports correct selection of the most appropriate device for
a previously unencountered code, which is highly relevant to the HPC scheduling
setting.
