@@ -128,6 +128,7 @@ static void crash() {
128
128
" Meet error in this line code!" ); \
129
129
} while (0 )
130
130
131
+
131
132
#if DPCT_COMPAT_RT_VERSION >= 11100
132
133
#define GGML_SYCL_ASSUME (x ) __builtin_assume(x)
133
134
#else
@@ -241,22 +242,24 @@ class sycl_device_mgr {
241
242
242
243
sycl::queue * create_queue_for_device (sycl::context &ctx, sycl::device &device) {
243
244
dpct::select_device (dpct::dev_mgr::instance ().get_device_id (device));
244
- printf (" zjy create_queue_for_device 1\n " );
245
245
auto res = dpct::get_current_device ().create_queue (ctx, device);
246
- printf (" zjy create_queue_for_device 4\n " );
247
246
return res;
248
247
}
249
248
250
249
sycl::queue * create_queue_for_device_id (int device_id) {
251
- printf (" zjy create_queue_for_device_id 0 ctxs.size()=%d\n " , ctxs.size ());
252
-
253
- sycl::context ctx=ctxs[device_id];
254
- printf (" zjy create_queue_for_device_id 1\n " );
250
+ int i = get_device_index (device_id);
251
+ sycl::context ctx=ctxs[i];
255
252
sycl::device device = dpct::dev_mgr::instance ().get_device (device_id);;
256
- printf (" zjy create_queue_for_device_id 2\n " );
257
253
return create_queue_for_device (ctx, device);
258
254
}
259
255
256
+ int get_device_index (int device_id) {
257
+ for (int i = 0 ; i < device_ids.size (); i++) {
258
+ if (device_ids[i] == device_id) return i;
259
+ }
260
+ return -1 ;
261
+ }
262
+
260
263
void create_context_for_devices () {
261
264
for (int i = 0 ; i < device_ids.size (); i++) {
262
265
sycl::context ctx = sycl::context (devices[i]);
@@ -552,10 +555,9 @@ struct ggml_backend_sycl_context {
552
555
explicit ggml_backend_sycl_context (struct ggml_sycl_device_info &sycl_device_info, int device_id) :
553
556
device(device_id),
554
557
name(GGML_SYCL_NAME + std::to_string(device)) {
555
- printf (" zjy ggml_backend_sycl_context 1\n " );
556
558
for (int i=0 ;i<GGML_SYCL_MAX_STREAMS; i++){
557
- printf (" zjy ggml_backend_sycl_context 2 i=%d id=%d\n " , i, device_id );
558
559
qptrs[device_id][i] = sycl_device_info.device_mgr ->create_queue_for_device_id (device_id);
560
+ printf (" zjy ggml_backend_sycl_context sycl_ctx->device=%d i=%d stream=%p\n " , device_id, i, qptrs[device_id][i]);
559
561
}
560
562
}
561
563
0 commit comments