@@ -54,69 +54,43 @@ class QMgrHelper
54
54
public:
55
55
using QVec = vector_class<queue>;
56
56
57
- static QVec* init_opencl_cpu_queues ( ) {
57
+ static QVec* init_queues (backend BE, info::device_type DTy ) {
58
58
QVec *queues = new QVec ();
59
-
59
+
60
60
for (auto &p : platform::get_platforms ()) {
61
61
auto Devices = p.get_devices ();
62
62
auto Ctx = context (Devices);
63
63
if (p.is_host ()) continue ;
64
64
for (auto &d : Devices) {
65
65
auto devty = d.get_info <info::device::device_type>();
66
66
auto be = p.get_backend ();
67
- if (devty == info::device_type::cpu && be == backend::opencl ) {
67
+ if (devty == DTy && be == BE ) {
68
68
queues->emplace_back (Ctx, d);
69
69
}
70
70
}
71
71
}
72
72
return queues;
73
73
}
74
-
74
+
75
75
static QVec& get_opencl_cpu_queues ()
76
76
{
77
- static QVec* queues = init_opencl_cpu_queues ();
77
+ static QVec* queues = init_queues (backend::opencl,
78
+ info::device_type::cpu);
78
79
return *queues;
79
80
}
80
81
81
- static QVec get_opencl_gpu_queues ()
82
+ static QVec& get_opencl_gpu_queues ()
82
83
{
83
- QVec queues;
84
-
85
- for (auto &p : platform::get_platforms ()) {
86
- auto Devices = p.get_devices ();
87
- auto Ctx = context (Devices);
88
- if (p.is_host ()) continue ;
89
- for (auto &d : Devices) {
90
- auto devty = d.get_info <info::device::device_type>();
91
- auto be = p.get_backend ();
92
- if (devty == info::device_type::gpu && be == backend::opencl) {
93
- queues.emplace_back (Ctx, d);
94
- }
95
- }
96
- }
97
-
98
- return queues;
84
+ static QVec* queues = init_queues (backend::opencl,
85
+ info::device_type::gpu);
86
+ return *queues;
99
87
}
100
88
101
89
static QVec get_level0_gpu_queues ()
102
90
{
103
- QVec queues;
104
-
105
- for (auto &p : platform::get_platforms ()) {
106
- auto Devices = p.get_devices ();
107
- auto Ctx = context (Devices);
108
- if (p.is_host ()) continue ;
109
- for (auto &d : Devices) {
110
- auto devty = d.get_info <info::device::device_type>();
111
- auto be = p.get_backend ();
112
- if (devty == info::device_type::gpu &&
113
- be == backend::level_zero) {
114
- queues.emplace_back (Ctx, d);
115
- }
116
- }
117
- }
118
-
119
- return queues;
91
+ static QVec* queues = init_queues (backend::level_zero,
92
+ info::device_type::gpu);
93
+ return *queues;
120
94
}
121
95
122
96
static QVec& get_active_queues ()
0 commit comments