Skip to content

Commit 065b2d2

Browse files
Merge remote-tracking branch 'origin/master' into custom-is-finite
2 parents 91dfdb5 + 87d1c13 commit 065b2d2

35 files changed

+272
-142
lines changed

cmake/FindDpctl.cmake

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,8 @@
1717
#
1818

1919
if(NOT Dpctl_FOUND)
20-
set(_find_extra_args)
21-
if(Dpctl_FIND_REQUIRED)
22-
list(APPEND _find_extra_args REQUIRED)
23-
endif()
24-
if(Dpctl_FIND_QUIET)
25-
list(APPEND _find_extra_args QUIET)
26-
endif()
27-
find_package(PythonInterp ${_find_extra_args})
28-
find_package(PythonLibs ${_find_extra_args})
20+
find_package(Python 3.9 REQUIRED
21+
COMPONENTS Interpreter Development.Module)
2922

3023
if(PYTHON_EXECUTABLE)
3124
execute_process(COMMAND "${PYTHON_EXECUTABLE}"

conda-recipe/run_test.bat

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
"%PYTHON%" -c "import dpctl; print(dpctl.__version__)"
44
if errorlevel 1 exit 1
55

6-
"%PYTHON%" -c "import dpctl; dpctl.lsplatform()"
6+
"%PYTHON%" -m dpctl -f
77
if errorlevel 1 exit 1
88

9-
python -m pytest -q -p no:faulthandler -ra --disable-warnings --pyargs dpctl -vv
9+
python -m pytest -q -ra --disable-warnings --pyargs dpctl -vv
1010
if errorlevel 1 exit 1

conda-recipe/run_test.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
set -e
44

55
${PYTHON} -c "import dpctl; print(dpctl.__version__)"
6-
${PYTHON} -c "import dpctl; dpctl.lsplatform(verbosity=2)"
7-
${PYTHON} -m pytest -q -ra --disable-warnings -p no:faulthandler --cov dpctl --cov-report term-missing --pyargs dpctl -vv
6+
${PYTHON} -m dpctl -f
7+
${PYTHON} -m pytest -q -ra --disable-warnings --cov dpctl --cov-report term-missing --pyargs dpctl -vv

dpctl/_sycl_context.pyx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ cdef class SyclContext(_SyclContext):
114114
ctx = dpctl.SyclContext()
115115
print(ctx.get_devices())
116116
117-
- Invoking the constuctor with a specific filter string that creates a
117+
- Invoking the constructor with a specific filter string that creates a
118118
context for the device corresponding to the filter string.
119119
120120
:Example:
@@ -127,7 +127,7 @@ cdef class SyclContext(_SyclContext):
127127
d = ctx.get_devices()[0]
128128
assert(d.is_gpu)
129129
130-
- Invoking the constuctor with a :class:`dpctl.SyclDevice` object
130+
- Invoking the constructor with a :class:`dpctl.SyclDevice` object
131131
creates a context for that device.
132132
133133
:Example:
@@ -141,7 +141,7 @@ cdef class SyclContext(_SyclContext):
141141
d = ctx.get_devices()[0]
142142
assert(d.is_gpu)
143143
144-
- Invoking the constuctor with a list of :class:`dpctl.SyclDevice`
144+
- Invoking the constructor with a list of :class:`dpctl.SyclDevice`
145145
objects creates a common context for all the devices. This
146146
constructor call is especially useful when creation a context for
147147
multiple sub-devices.
@@ -159,7 +159,7 @@ cdef class SyclContext(_SyclContext):
159159
ctx = dpctl.SyclContext(sub_devices)
160160
assert(len(ctx.get_devices) == len(sub_devices))
161161
162-
- Invoking the constuctor with a named ``PyCapsule`` with name
162+
- Invoking the constructor with a named ``PyCapsule`` with name
163163
**"SyclContextRef"** that carries a pointer to a ``sycl::context``
164164
object. The capsule will be renamed upon successful consumption
165165
to ensure one-time use. A new named capsule can be constructed by
@@ -430,7 +430,7 @@ cdef class SyclContext(_SyclContext):
430430
return num_devs
431431
else:
432432
raise ValueError(
433-
"An error was encountered quering the number of devices "
433+
"An error was encountered querying the number of devices "
434434
"associated with this context"
435435
)
436436

dpctl/_sycl_device.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1163,7 +1163,7 @@ cdef class SyclDevice(_SyclDevice):
11631163
def create_sub_devices(self, **kwargs):
11641164
"""create_sub_devices(partition=parition_spec)
11651165
Creates a list of sub-devices by partitioning a root device based on the
1166-
provided partion specifier.
1166+
provided partition specifier.
11671167
11681168
A partition specifier must be provided using a "partition"
11691169
keyword argument. Possible values for the specifier are: an int, a

dpctl/_sycl_event.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ cdef class SyclEvent(_SyclEvent):
119119
# Create a default SyclEvent
120120
e = dpctl.SyclEvent()
121121
122-
- Invoking the constuctor with a named ``PyCapsule`` with name
122+
- Invoking the constructor with a named ``PyCapsule`` with name
123123
**"SyclEventRef"** that carries a pointer to a ``sycl::event``
124124
object. The capsule will be renamed upon successful consumption
125125
to ensure one-time use. A new named capsule can be constructed by

dpctl/_sycl_queue.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ cdef class SyclQueue(_SyclQueue):
246246
# create a queue for each sub-device using the common context
247247
queues = [dpctl.SyclQueue(ctx, sub_d) for sub_d in sub_devices]
248248
249-
- Invoking the constuctor with a named ``PyCapsule`` with the name
249+
- Invoking the constructor with a named ``PyCapsule`` with the name
250250
**"SyclQueueRef"** that carries a pointer to a ``sycl::queue``
251251
object. The capsule will be renamed upon successful consumption
252252
to ensure one-time use. A new named capsule can be constructed by

dpctl/_sycl_timer.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,14 @@ class SyclTimer:
3737
q = dpctl.SyclQueue(property='enable_profiling')
3838
3939
# create the timer
40-
miliseconds_sc = 1e-3
41-
timer = dpctl.SyclTimer(time_scale = miliseconds_sc)
40+
milliseconds_sc = 1e-3
41+
timer = dpctl.SyclTimer(time_scale = milliseconds_sc)
4242
4343
# use the timer
4444
with timer(queue=q):
4545
code_block
4646
47-
# retrieve elapsed times in miliseconds
47+
# retrieve elapsed times in milliseconds
4848
sycl_dt, wall_dt = timer.dt
4949
5050
Remark:

dpctl/apis/include/dpctl4pybind11.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -742,12 +742,12 @@ class usm_memory : public py::object
742742
return nullptr;
743743
}
744744

745-
auto convertor =
745+
auto converter =
746746
::dpctl::detail::dpctl_capi::get().as_usm_memory_pyobj();
747747

748748
py::object res;
749749
try {
750-
res = convertor(py::handle(o));
750+
res = converter(py::handle(o));
751751
} catch (const py::error_already_set &e) {
752752
return nullptr;
753753
}

dpctl/memory/_memory.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ cdef void copy_via_host(void *dest_ptr, SyclQueue dest_queue,
9292
void *src_ptr, SyclQueue src_queue, size_t nbytes):
9393
"""
9494
Copies `nbytes` bytes from `src_ptr` USM memory to
95-
`dest_ptr` USM memory using host as the intemediary.
95+
`dest_ptr` USM memory using host as the intermediary.
9696
9797
This is useful when `src_ptr` and `dest_ptr` are bound to incompatible
9898
SYCL contexts.

dpctl/tensor/_copy_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def _copy_to_numpy(ary):
5656

5757
def _copy_from_numpy(np_ary, usm_type="device", sycl_queue=None):
5858
"Copies numpy array `np_ary` into a new usm_ndarray"
59-
# This may peform a copy to meet stated requirements
59+
# This may perform a copy to meet stated requirements
6060
Xnp = np.require(np_ary, requirements=["A", "E"])
6161
alloc_q = normalize_queue_device(sycl_queue=sycl_queue, device=None)
6262
dt = Xnp.dtype

dpctl/tensor/_device.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ def sycl_context(self):
9696
@property
9797
def sycl_device(self):
9898
"""
99-
:class:`dpctl.SyclDevice` targed by this :class:`.Device`.
99+
:class:`dpctl.SyclDevice` targeted by this :class:`.Device`.
100100
"""
101101
return self.sycl_queue_.sycl_device
102102

dpctl/tensor/_elementwise_funcs.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1628,7 +1628,7 @@
16281628
_subtract_docstring_ = """
16291629
subtract(x1, x2, out=None, order='K')
16301630
1631-
Calculates the difference bewteen each element `x1_i` of the input
1631+
Calculates the difference between each element `x1_i` of the input
16321632
array `x1` and the respective element `x2_i` of the input array `x2`.
16331633
16341634
Args:

dpctl/tensor/_manipulation_functions.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ def broadcast_to(X, shape):
315315
raise TypeError(f"Expected usm_ndarray type, got {type(X)}.")
316316

317317
# Use numpy.broadcast_to to check the validity of the input
318-
# parametr 'shape'. Raise ValueError if 'X' is not compatible
318+
# parameter 'shape'. Raise ValueError if 'X' is not compatible
319319
# with 'shape' according to NumPy's broadcasting rules.
320320
new_array = np.broadcast_to(
321321
np.broadcast_to(np.empty(tuple(), dtype="u1"), X.shape), shape
@@ -757,7 +757,7 @@ def iinfo(dtype):
757757
758758
Returns:
759759
iinfo_object:
760-
An object with the followign attributes
760+
An object with the following attributes
761761
* bits: int
762762
number of bits occupied by the data type
763763
* max: int

dpctl/tensor/_print.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ def set_print_options(
148148
suppress (bool, optional): If `True,` numbers equal to zero
149149
in the current precision will print as zero.
150150
Default: `False`.
151-
nanstr (str, optional): String used to repesent nan.
151+
nanstr (str, optional): String used to represent nan.
152152
Raises `TypeError` if nanstr is not a string.
153153
Default: `"nan"`.
154154
infstr (str, optional): String used to represent infinity.

dpctl/tensor/_slicing.pxi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ def _basic_slice_meta(ind, shape : tuple, strides : tuple, offset : int):
104104
Give basic slicing index `ind` and array layout information produce
105105
a 5-tuple (resulting_shape, resulting_strides, resulting_offset,
106106
advanced_ind, resulting_advanced_ind_pos)
107-
used to contruct a view into underlying array over which advanced
107+
used to construct a view into underlying array over which advanced
108108
indexing, if any, is to be performed.
109109
110110
Raises IndexError for invalid index `ind`.
@@ -201,7 +201,7 @@ def _basic_slice_meta(ind, shape : tuple, strides : tuple, offset : int):
201201
raise TypeError
202202
if ellipses_count > 1:
203203
raise IndexError(
204-
"an index can only have a sinlge ellipsis ('...')")
204+
"an index can only have a single ellipsis ('...')")
205205
if axes_referenced > len(shape):
206206
raise IndexError(
207207
"too many indices for an array, array is "

dpctl/tensor/_stride_utils.pxi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ cdef int _from_input_shape_strides(
5555
nelems - Number of elements in array
5656
min_disp = min( dot(strides, index), index for shape)
5757
max_disp = max( dor(strides, index), index for shape)
58-
contig = enumation for array contiguity
58+
contig = enumeration for array contiguity
5959
Returns: 0 on success, error code otherwise.
6060
On success pointers point to allocated arrays,
6161
Otherwise they are set to NULL

dpctl/tensor/_usmarray.pyx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,7 @@ cdef class usm_ndarray:
425425
cdef char *ary_ptr = NULL
426426
if (not isinstance(self.base_, dpmem._memory._Memory)):
427427
raise InternalUSMArrayError(
428-
"Invalid instance of usm_ndarray ecountered. "
428+
"Invalid instance of usm_ndarray encountered. "
429429
"Private field base_ has an unexpected type {}.".format(
430430
type(self.base_)
431431
)
@@ -566,7 +566,7 @@ cdef class usm_ndarray:
566566
elif (self.flags_ & USM_ARRAY_F_CONTIGUOUS):
567567
return _f_contig_strides(self.nd_, self.shape_)
568568
else:
569-
raise ValueError("Inconsitent usm_ndarray data")
569+
raise ValueError("Inconsistent usm_ndarray data")
570570

571571
@property
572572
def flags(self):
@@ -653,7 +653,7 @@ cdef class usm_ndarray:
653653

654654
@property
655655
def T(self):
656-
""" Returns tranposed array for 2D array, raises `ValueError`
656+
""" Returns transposed array for 2D array, raises `ValueError`
657657
otherwise.
658658
"""
659659
if self.nd_ == 2:
@@ -1376,8 +1376,8 @@ cdef api object UsmNDArray_MakeSimpleFromMemory(
13761376
QRef: DPCTLSyclQueueRef associated with the allocation
13771377
offset: distance between element with zero multi-index and the
13781378
start of allocation
1379-
oder: Memory layout of the array. Use 'C' for C-contiguous or
1380-
row-major layout; 'F' for F-contiguous or column-major layout
1379+
order: Memory layout of the array. Use 'C' for C-contiguous or
1380+
row-major layout; 'F' for F-contiguous or column-major layout
13811381
Returns:
13821382
Created usm_ndarray instance
13831383
"""

dpctl/tensor/include/dlpack/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ The header `dlpack.h` downloaded from `https://github.com/dmlc/dlpack.git` remot
44

55
The file can also be viewed using github web interface at https://github.com/dmlc/dlpack/blob/e2bdd3bee8cb6501558042633fa59144cc8b7f5f/include/dlpack/dlpack.h
66

7-
License file was retrived from https://github.com/dmlc/dlpack/blob/main/LICENSE
7+
License file was retrieved from https://github.com/dmlc/dlpack/blob/main/LICENSE

dpctl/tensor/include/dlpack/dlpack.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ typedef struct {
168168
* `byte_offset` field should be used to point to the beginning of the data.
169169
*
170170
* Note that as of Nov 2021, multiply libraries (CuPy, PyTorch, TensorFlow,
171-
* TVM, perhaps others) do not adhere to this 256 byte aligment requirement
171+
* TVM, perhaps others) do not adhere to this 256 byte alignment requirement
172172
* on CPU/CUDA/ROCm, and always use `byte_offset=0`. This must be fixed
173173
* (after which this note will be updated); at the moment it is recommended
174174
* to not rely on the data pointer being correctly aligned.

dpctl/tensor/libtensor/include/kernels/copy_and_cast.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ typedef sycl::event (*copy_and_cast_generic_fn_ptr_t)(
118118
* @brief Generic function to copy `nelems` elements from `src` usm_ndarray to
119119
`dst` usm_ndarray while casting from `srcTy` to `dstTy`.
120120
121-
Both arrays have array dimensionality specied via argument `nd`. The
121+
Both arrays have array dimensionality specified via argument `nd`. The
122122
`shape_and_strides` is kernel accessible USM array of length `3*nd`, where the
123123
first `nd` elements encode common shape, second `nd` elements contain strides
124124
of `src` array, and the trailing `nd` elements contain strides of `dst` array.
@@ -696,7 +696,7 @@ typedef sycl::event (*copy_for_reshape_fn_ptr_t)(
696696
* @param src_nd Array dimension of the source array
697697
* @param dst_nd Array dimension of the destination array
698698
* @param packed_shapes_and_strides Kernel accessible USM array of size
699-
* `2*src_nd + 2*dst_nd` with contant `[src_shape, src_strides, dst_shape,
699+
* `2*src_nd + 2*dst_nd` with content `[src_shape, src_strides, dst_shape,
700700
* dst_strides]`.
701701
* @param src_p Typeless USM pointer to the buffer of the source array
702702
* @param dst_p Typeless USM pointer to the buffer of the destination array

dpctl/tensor/libtensor/include/kernels/elementwise_functions/expm1.hpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,12 @@ template <typename argT, typename resT> struct Expm1Functor
116116
}
117117

118118
// x, y finite numbers
119-
const realT sinY_val = std::sin(y);
120-
const realT cosY_val = std::cos(y);
119+
realT cosY_val;
120+
auto cosY_val_multi_ptr = sycl::address_space_cast<
121+
sycl::access::address_space::private_space,
122+
sycl::access::decorated::yes>(&cosY_val);
123+
const realT sinY_val = sycl::sincos(y, cosY_val_multi_ptr);
124+
121125
const realT sinhalfY_val = std::sin(y / 2);
122126

123127
const realT res_re =

0 commit comments

Comments
 (0)