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
|
#pragma once
#include "../c++/data.hpp"
#include "../c++/device.hpp"
#include "../c++/remote.hpp"
namespace sch {
using namespace saw::schema;
using MixedArray = Array<
MixedPrecision<Float64, Float32>
>;
using Float64Array = Array<
Float64
>;
using Float32Array = Array<
Float32
>;
using MixedPrecisionBenchmarkInterface = Interface<
Member<Function<MixedArray,Void>, "float64_32">,
Member<Function<Float64Array,Void>, "float64">,
Member<Function<Float32Array,Void>, "float32">
>;
/**
* This is more of a presentation
*/
template<typename FloatArraySchema>
using FloatPrecisionBenchmarkInterface = Interface<
Member<Function<FloatArraySchema,Void>, "float_arr">
>;
}
saw::interface<sch::MixedPrecisionBenchmarkInterface, saw::encode::Sycl<saw::encode::Native>, cl::sycl::queue*> listen_mixed_precision(cl::sycl::event& mixed_ev, cl::sycl::event& float64_ev, cl::sycl::event& float32_ev, uint64_t& arithmetic_intensity);
saw::interface<sch::FloatPrecisionBenchmarkInterface<sch::MixedArray>, saw::encode::Sycl<saw::encode::Native>, cl::sycl::queue*> listen_mixed_float_precision(cl::sycl::event& ev, uint64_t& arithmetic_intensity);
saw::interface<sch::FloatPrecisionBenchmarkInterface<sch::Float32Array>, saw::encode::Sycl<saw::encode::Native>, cl::sycl::queue*> listen_half_float_precision(cl::sycl::event& ev, uint64_t& arithmetic_intensity);
saw::interface<sch::FloatPrecisionBenchmarkInterface<sch::Float64Array>, saw::encode::Sycl<saw::encode::Native>, cl::sycl::queue*> listen_full_precision(cl::sycl::event& ev, uint64_t& arithmetic_intensity);
|