@@ -111,7 +111,8 @@ namespace ext {
111
111
namespace intel {
112
112
namespace experimental {
113
113
114
- class bfloat16 {
114
+ class [[sycl_detail::uses_aspects(ext_intel_bf16_conversion)]]
115
+ bfloat16 {
115
116
using storage_t = uint16_t;
116
117
storage_t value;
117
118
@@ -156,21 +157,20 @@ float foo(float a, float b) {
156
157
return C;
157
158
}
158
159
159
- int main (int argc, char *argv[])
160
- {
161
- float data[3] = {7.0, 8.1, 0.0};
162
- cl::sycl::queue deviceQueue;
163
- cl::sycl::buffer<float, 1> buf {data, cl::sycl::range<1> {3}};
164
-
165
- deviceQueue.submit ([&] (cl::sycl::handler& cgh)
166
- {
167
- auto numbers = buf.get_access<cl::sycl::access::mode::read_write> (cgh);
168
- cgh.single_task<class simple_kernel> ([=] ()
169
- {
170
- numbers[2] = foo(numbers[0], numbers[1]);
171
-
172
- });
160
+ int main (int argc, char *argv[]) {
161
+ float data[3] = {7.0, 8.1, 0.0};
162
+ sycl::device dev{sycl::default_selector{}};
163
+ sycl::queue deviceQueue{dev};
164
+ sycl::buffer<float, 1> buf {data, cl::sycl::range<1> {3}};
165
+
166
+ if (dev.has(aspect::ext_intel_bf16_conversion)) {
167
+ deviceQueue.submit ([&] (cl::sycl::handler& cgh) {
168
+ auto numbers = buf.get_access<cl::sycl::access::mode::read_write> (cgh);
169
+ cgh.single_task<class simple_kernel> ([=] () {
170
+ numbers[2] = foo(numbers[0], numbers[1]);
171
+ });
173
172
});
173
+ }
174
174
return 0;
175
175
}
176
176
----
0 commit comments