Skip to content

Commit 521f905

Browse files
authored
updated numba_dpex kernel call to use new API (#2394)
1 parent 6beaaa3 commit 521f905

File tree

2 files changed

+27
-10
lines changed

2 files changed

+27
-10
lines changed

AI-and-Analytics/Features-and-Functionality/IntelPython_Numpy_Numba_dpex_kNN/IntelPython_Numpy_Numba_dpex_kNN.ipynb

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,7 @@
331331
"\n",
332332
"@numba_dpex.kernel\n",
333333
"def knn_numba_dpex(\n",
334+
" item: numba_dpex.kernel_api.Item,\n",
334335
" train,\n",
335336
" train_labels,\n",
336337
" test,\n",
@@ -339,8 +340,8 @@
339340
" votes_to_classes_lst,\n",
340341
"):\n",
341342
" dtype = train.dtype\n",
342-
" i = numba_dpex.get_global_id(0)\n",
343-
" queue_neighbors = numba_dpex.private.array(shape=(3, 2), dtype=dtype)\n",
343+
" i = item.get_id(0)\n",
344+
" queue_neighbors = numba_dpex.kernel_api.PrivateArray(shape=(3, 2), dtype=dtype)\n",
344345
"\n",
345346
" for j in range(k):\n",
346347
" x1 = train[j, 0]\n",
@@ -436,8 +437,15 @@
436437
"y_train_dpt = dpnp.asarray(y_train.values, device=\"cpu\")\n",
437438
"X_test_dpt = dpnp.asarray(X_test.values, device=\"cpu\")\n",
438439
"\n",
439-
"knn_numba_dpex[numba_dpex.Range(len(X_test.values))](\n",
440-
" X_train_dpt, y_train_dpt, X_test_dpt, 3, predictions, votes_to_classes_lst\n",
440+
"numba_dpex.call_kernel(\n",
441+
" knn_numba_dpex,\n",
442+
" numba_dpex.Range(len(X_test.values)),\n",
443+
" X_train_dpt,\n",
444+
" y_train_dpt,\n",
445+
" X_test_dpt,\n",
446+
" 3,\n",
447+
" predictions,\n",
448+
" votes_to_classes_lst,\n",
441449
")"
442450
]
443451
},

AI-and-Analytics/Features-and-Functionality/IntelPython_Numpy_Numba_dpex_kNN/IntelPython_Numpy_Numba_dpex_kNN.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ def knn(X_train, y_train, X_test, k):
157157

158158
import numba
159159

160+
160161
@numba.jit(nopython=True)
161162
def euclidean_distance_numba(vector1, vector2):
162163
dist = np.linalg.norm(vector1 - vector2)
@@ -173,7 +174,6 @@ def knn_numba(X_train, y_train, X_test, k):
173174
# 1. Prepare container for predictions
174175
predictions = np.zeros(X_test.shape[0])
175176
for x in np.arange(X_test.shape[0]):
176-
177177
# 2. Calculate distances
178178
inputs = X_train.copy()
179179
distances = np.zeros((inputs.shape[0], 1))
@@ -235,8 +235,10 @@ def knn_numba(X_train, y_train, X_test, k):
235235

236236
import numba_dpex
237237

238+
238239
@numba_dpex.kernel
239240
def knn_numba_dpex(
241+
item: numba_dpex.kernel_api.Item,
240242
train,
241243
train_labels,
242244
test,
@@ -245,8 +247,8 @@ def knn_numba_dpex(
245247
votes_to_classes_lst,
246248
):
247249
dtype = train.dtype
248-
i = numba_dpex.get_global_id(0)
249-
queue_neighbors = numba_dpex.private.array(shape=(3, 2), dtype=dtype)
250+
i = item.get_id(0)
251+
queue_neighbors = numba_dpex.kernel_api.PrivateArray(shape=(3, 2), dtype=dtype)
250252

251253
for j in range(k):
252254
x1 = train[j, 0]
@@ -333,8 +335,15 @@ def knn_numba_dpex(
333335
y_train_dpt = dpnp.asarray(y_train.values, device="cpu")
334336
X_test_dpt = dpnp.asarray(X_test.values, device="cpu")
335337

336-
knn_numba_dpex[numba_dpex.Range(len(X_test.values))](
337-
X_train_dpt, y_train_dpt, X_test_dpt, 3, predictions, votes_to_classes_lst
338+
numba_dpex.call_kernel(
339+
knn_numba_dpex,
340+
numba_dpex.Range(len(X_test.values)),
341+
X_train_dpt,
342+
y_train_dpt,
343+
X_test_dpt,
344+
3,
345+
predictions,
346+
votes_to_classes_lst,
338347
)
339348

340349

@@ -352,4 +361,4 @@ def knn_numba_dpex(
352361
# In[ ]:
353362

354363

355-
print("[CODE_SAMPLE_COMPLETED_SUCCESSFULLY]")
364+
print("[CODE_SAMPLE_COMPLETED_SUCCESSFULLY]")

0 commit comments

Comments
 (0)