Skip to content

Commit e287faa

Browse files
author
Diptorup Deb
committed
Merge branch 'upstream_master' into doc-improvement
2 parents 44e943b + c3b9199 commit e287faa

File tree

6 files changed

+44
-26
lines changed

6 files changed

+44
-26
lines changed

.coveragerc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
plugins = Cython.Coverage
33
branch = True
44
source = dpctl
5-
omit = dpctl/tests/*, *__init__.py
5+
omit = dpctl/tests/*, dpctl/_version.py

conda-recipe/run_test.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ set -e
66
source ${ONEAPI_ROOT}/compiler/latest/env/vars.sh || true
77

88
${PYTHON} -c "import dpctl"
9-
pytest -q -ra --disable-warnings --pyargs dpctl -vv
9+
pytest -q -ra --disable-warnings --cov dpctl --cov-report term-missing --pyargs dpctl -vv

dpctl/_sycl_context.pyx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ cdef class SyclContext(_SyclContext):
141141
PyMem_Free(elems)
142142
else:
143143
return -2
144-
DPCTLContext_CreateFromDevices(DVRef, eh_callback, props)
144+
CRef = DPCTLContext_CreateFromDevices(DVRef, eh_callback, props)
145145
DPCTLDeviceVector_Delete(DVRef)
146146
if (CRef is NULL):
147147
return -1
@@ -189,7 +189,7 @@ cdef class SyclContext(_SyclContext):
189189
elif pycapsule.PyCapsule_IsValid(arg, "SyclContextRef"):
190190
status = self._init_context_from_capsule(arg)
191191
elif isinstance(arg, (list, tuple)) and all([isinstance(argi, SyclDevice) for argi in arg]):
192-
ret = self._init_conext_from_devices(arg, 0)
192+
ret = self._init_context_from_devices(arg, 0)
193193
else:
194194
dev = SyclDevice(arg)
195195
ret = self._init_context_from_one_device(<SyclDevice> dev, 0)

dpctl/_sycl_queue.pxd

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,6 @@ cdef class SyclQueue (_SyclQueue):
5353
self, SyclContext, SyclDevice, int
5454
)
5555
cdef int _init_queue_from_capsule(self, object)
56-
cdef _raise_queue_submit_error(self, fname, errcode)
57-
cdef _raise_invalid_range_error(self, fname, ndims, errcode)
5856
cdef int _populate_args(
5957
self,
6058
list args,

dpctl/_sycl_queue.pyx

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -447,21 +447,6 @@ cdef class SyclQueue(_SyclQueue):
447447
ret._device = dev
448448
return SyclQueue(ret)
449449

450-
cdef _raise_queue_submit_error(self, fname, errcode):
451-
e = SyclKernelSubmitError("Kernel submission to Sycl queue failed.")
452-
e.fname = fname
453-
e.code = errcode
454-
raise e
455-
456-
cdef _raise_invalid_range_error(self, fname, ndims, errcode):
457-
e = SyclKernelInvalidRangeError(
458-
"Range with ", ndims, " not allowed. Range should have between "
459-
" one and three dimensions."
460-
)
461-
e.fname = fname
462-
e.code = errcode
463-
raise e
464-
465450
cdef int _populate_args(
466451
self,
467452
list args,
@@ -536,7 +521,7 @@ cdef class SyclQueue(_SyclQueue):
536521

537522
cpdef cpp_bool equals(self, SyclQueue q):
538523
""" Returns true if the SyclQueue argument has the same _queue_ref
539-
as this SycleQueue.
524+
as this SyclQueue.
540525
"""
541526
return DPCTLQueue_AreEq(self._queue_ref, q.get_queue_ref())
542527

@@ -634,7 +619,10 @@ cdef class SyclQueue(_SyclQueue):
634619
free(kargs)
635620
free(kargty)
636621
free(depEvents)
637-
self._raise_invalid_range_error("SyclQueue.submit", nGS, -1)
622+
raise SyclKernelInvalidRangeError(
623+
"Range with ", nGS, " not allowed. Range can only have "
624+
"between one and three dimensions."
625+
)
638626
Eref = DPCTLQueue_SubmitRange(
639627
kernel.get_kernel_ref(),
640628
self.get_queue_ref(),
@@ -652,13 +640,19 @@ cdef class SyclQueue(_SyclQueue):
652640
free(kargs)
653641
free(kargty)
654642
free(depEvents)
655-
self._raise_invalid_range_error("SyclQueue.submit", nGS, -1)
643+
raise SyclKernelInvalidRangeError(
644+
"Range with ", nGS, " not allowed. Range can only have "
645+
"between one and three dimensions."
646+
)
656647
ret = self._populate_range (lRange, lS, nLS)
657648
if ret == -1:
658649
free(kargs)
659650
free(kargty)
660651
free(depEvents)
661-
self._raise_invalid_range_error("SyclQueue.submit", nLS, -1)
652+
raise SyclKernelInvalidRangeError(
653+
"Range with ", nLS, " not allowed. Range can only have "
654+
"between one and three dimensions."
655+
)
662656
if nGS != nLS:
663657
free(kargs)
664658
free(kargty)
@@ -684,7 +678,9 @@ cdef class SyclQueue(_SyclQueue):
684678
free(depEvents)
685679

686680
if Eref is NULL:
687-
self._raise_queue_submit_error("DPCTLQueue_Submit", -1)
681+
raise SyclKernelSubmitError(
682+
"Kernel submission to Sycl queue failed."
683+
)
688684

689685
return SyclEvent._create(Eref, args)
690686

dpctl/tests/test_sycl_context.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,3 +382,27 @@ def test_context_can_be_used_in_queue2(valid_filter):
382382
pytest.skip()
383383
ctx = dpctl.SyclContext(d)
384384
q = dpctl.SyclQueue(ctx, d)
385+
386+
387+
def test_context_multi_device():
388+
try:
389+
d = dpctl.SyclDevice("cpu")
390+
except ValueError:
391+
pytest.skip()
392+
if d.default_selector_score < 0:
393+
pytest.skip()
394+
n = d.max_compute_units
395+
n1 = n // 2
396+
n2 = n - n1
397+
if n1 == 0 or n2 == 0:
398+
pytest.skip()
399+
d1, d2 = d.create_sub_devices(partition=(n1, n2))
400+
ctx = dpctl.SyclContext((d1, d2))
401+
assert ctx.device_count == 2
402+
q1 = dpctl.SyclQueue(ctx, d1)
403+
q2 = dpctl.SyclQueue(ctx, d2)
404+
import dpctl.memory as dpmem
405+
406+
shmem_1 = dpmem.MemoryUSMShared(256, queue=q1)
407+
shmem_2 = dpmem.MemoryUSMDevice(256, queue=q2)
408+
shmem_2.copy_from_device(shmem_1)

0 commit comments

Comments
 (0)