Skip to content

Commit 1a1a099

Browse files
Move _tensor_impl extensions and use it for dpnp (#2755)
This PR proposes introducing `dpctl_ext` as a new internal extension module (temporarily renamed from `dpctl` to avoid conflicts), adding CMake/packaging support for building `_tensor_impl` via pybind11 and switching dpnp to use `dpctl_ext.tensor. _tensor_impl` The migrated `_tensor_impl` currently supports the following functions: > '_array_overlap', > '_as_c_contig', > '_as_f_contig', > '_contract_iter', > '_contract_iter2', > '_contract_iter3', > '_contract_iter4', > '_copy_usm_ndarray_into_usm_ndarray', > '_ravel_multi_index', > '_same_logical_tensors', > '_unravel_index', > 'default_device_bool_type', > 'default_device_complex_type', > 'default_device_fp_type', > 'default_device_index_type', > 'default_device_int_type', > 'default_device_uint_type' Files in `dpnp` that explicitly `import dpctl.tensor._tensor_impl`
1 parent 464ddc1 commit 1a1a099

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+4903
-18
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,7 @@ dpnp/**/*.cpython*.so
3232
dpnp/**/*.pyd
3333
*~
3434
core
35+
36+
# TODO: revert to `dpctl/`
37+
# when dpnp fully migrates dpctl/tensor
38+
dpctl_ext/**/*.cpython*.so

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,3 +345,4 @@ if(DEFINED SKBUILD)
345345
endif()
346346

347347
add_subdirectory(dpnp)
348+
add_subdirectory(dpctl_ext)

dpctl_ext/CMakeLists.txt

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
# -*- coding: utf-8 -*-
2+
# *****************************************************************************
3+
# Copyright (c) 2026, Intel Corporation
4+
# All rights reserved.
5+
#
6+
# Redistribution and use in source and binary forms, with or without
7+
# modification, are permitted provided that the following conditions are met:
8+
# - Redistributions of source code must retain the above copyright notice,
9+
# this list of conditions and the following disclaimer.
10+
# - Redistributions in binary form must reproduce the above copyright notice,
11+
# this list of conditions and the following disclaimer in the documentation
12+
# and/or other materials provided with the distribution.
13+
# - Neither the name of the copyright holder nor the names of its contributors
14+
# may be used to endorse or promote products derived from this software
15+
# without specific prior written permission.
16+
#
17+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
21+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27+
# THE POSSIBILITY OF SUCH DAMAGE.
28+
# *****************************************************************************
29+
30+
# TODO: rework this logic to remove current duplication
31+
if(WIN32)
32+
string(
33+
CONCAT WARNING_FLAGS
34+
"-Wall "
35+
"-Wextra "
36+
"-Winit-self "
37+
"-Wunused-function "
38+
"-Wuninitialized "
39+
"-Wmissing-declarations "
40+
"-Wstrict-prototypes "
41+
"-Wno-unused-parameter "
42+
)
43+
string(CONCAT SDL_FLAGS "/GS " "/DynamicBase ")
44+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Ox ${WARNING_FLAGS} ${SDL_FLAGS}")
45+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Ox ${WARNING_FLAGS} ${SDL_FLAGS}")
46+
set(CMAKE_C_FLAGS_DEBUG
47+
"${CMAKE_C_FLAGS_DEBUG} ${WARNING_FLAGS} ${SDL_FLAGS} -O0 -g1 -DDEBUG -Xsycl-target-frontend=spir64 \"-g0\""
48+
)
49+
set(CMAKE_CXX_FLAGS_DEBUG
50+
"${CMAKE_CXX_FLAGS_DEBUG} ${WARNING_FLAGS} ${SDL_FLAGS} -O0 -g1 -DDEBUG -Xsycl-target-frontend=spir64 \"-g0\""
51+
)
52+
set(CMAKE_C_FLAGS_COVERAGE
53+
"${CMAKE_C_FLAGS_DEBUG} ${WARNING_FLAGS} ${SDL_FLAGS} -O1 -g1 -DDEBUG"
54+
)
55+
set(CMAKE_CXX_FLAGS_COVERAGE
56+
"${CMAKE_CXX_FLAGS_DEBUG} ${WARNING_FLAGS} ${SDL_FLAGS} -O1 -g1 -DDEBUG"
57+
)
58+
set(CMAKE_MODULE_LINKER_FLAGS_COVERAGE "${CMAKE_MODULE_LINKER_FLAGS_DEBUG}")
59+
set(DPCTL_LDFLAGS "/NXCompat;/DynamicBase")
60+
mark_as_advanced(
61+
CMAKE_CXX_FLAGS_COVERAGE
62+
CMAKE_C_FLAGS_COVERAGE
63+
CMAKE_MODULE_LINKER_FLAGS_COVERAGE
64+
)
65+
elseif(UNIX)
66+
string(
67+
CONCAT WARNING_FLAGS
68+
"-Wall "
69+
"-Wextra "
70+
"-Winit-self "
71+
"-Wunused-function "
72+
"-Wuninitialized "
73+
"-Wmissing-declarations "
74+
"-Wstrict-prototypes "
75+
"-Wno-unused-parameter "
76+
"-fdiagnostics-color=auto "
77+
)
78+
string(
79+
CONCAT SDL_FLAGS
80+
"-fstack-protector "
81+
"-fstack-protector-all "
82+
"-fpic "
83+
"-fPIC "
84+
"-D_FORTIFY_SOURCE=2 "
85+
"-Wformat "
86+
"-Wformat-security "
87+
# "-fno-strict-overflow " # no-strict-overflow is implied by -fwrapv
88+
"-fno-delete-null-pointer-checks "
89+
"-fwrapv "
90+
)
91+
string(CONCAT CFLAGS "${WARNING_FLAGS}" "${SDL_FLAGS}")
92+
string(CONCAT CXXFLAGS "${WARNING_FLAGS}" "${SDL_FLAGS}")
93+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 ${CFLAGS}")
94+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 ${CXXFLAGS}")
95+
set(CMAKE_C_FLAGS_DEBUG
96+
"${CMAKE_C_FLAGS_DEBUG} ${CFLAGS} -O0 -g -DDEBUG -Xsycl-target-frontend=spir64 \"-g0\""
97+
)
98+
set(CMAKE_CXX_FLAGS_DEBUG
99+
"${CMAKE_CXX_FLAGS_DEBUG} ${CXXFLAGS} -O0 -g -DDEBUG -Xsycl-target-frontend=spir64 \"-g0\""
100+
)
101+
set(CMAKE_C_FLAGS_COVERAGE "${CMAKE_C_FLAGS_DEBUG} ${CFLAGS} -O1 -g1 -DDEBUG")
102+
set(CMAKE_CXX_FLAGS_COVERAGE "${CMAKE_CXX_FLAGS_DEBUG} ${CXXFLAGS} -O1 -g1 -DDEBUG")
103+
set(CMAKE_MODULE_LINKER_FLAGS_COVERAGE "${CMAKE_MODULE_LINKER_FLAGS_DEBUG}")
104+
set(DPCTL_LDFLAGS "-z,noexecstack,-z,relro,-z,now")
105+
mark_as_advanced(
106+
CMAKE_CXX_FLAGS_COVERAGE
107+
CMAKE_C_FLAGS_COVERAGE
108+
CMAKE_MODULE_LINKER_FLAGS_COVERAGE
109+
)
110+
else()
111+
message(FATAL_ERROR "Unsupported system.")
112+
endif()
113+
114+
# at build time create include/ directory and copy header files over
115+
# set(DPCTL_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include)
116+
117+
set(CMAKE_INSTALL_RPATH "$ORIGIN")
118+
119+
add_subdirectory(tensor)

dpctl_ext/__init__.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# *****************************************************************************
2+
# Copyright (c) 2026, Intel Corporation
3+
# All rights reserved.
4+
#
5+
# Redistribution and use in source and binary forms, with or without
6+
# modification, are permitted provided that the following conditions are met:
7+
# - Redistributions of source code must retain the above copyright notice,
8+
# this list of conditions and the following disclaimer.
9+
# - Redistributions in binary form must reproduce the above copyright notice,
10+
# this list of conditions and the following disclaimer in the documentation
11+
# and/or other materials provided with the distribution.
12+
# - Neither the name of the copyright holder nor the names of its contributors
13+
# may be used to endorse or promote products derived from this software
14+
# without specific prior written permission.
15+
#
16+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
26+
# THE POSSIBILITY OF SUCH DAMAGE.
27+
# *****************************************************************************

dpctl_ext/tensor/CMakeLists.txt

Lines changed: 179 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,179 @@
1+
# -*- coding: utf-8 -*-
2+
# *****************************************************************************
3+
# Copyright (c) 2026, Intel Corporation
4+
# All rights reserved.
5+
#
6+
# Redistribution and use in source and binary forms, with or without
7+
# modification, are permitted provided that the following conditions are met:
8+
# - Redistributions of source code must retain the above copyright notice,
9+
# this list of conditions and the following disclaimer.
10+
# - Redistributions in binary form must reproduce the above copyright notice,
11+
# this list of conditions and the following disclaimer in the documentation
12+
# and/or other materials provided with the distribution.
13+
# - Neither the name of the copyright holder nor the names of its contributors
14+
# may be used to endorse or promote products derived from this software
15+
# without specific prior written permission.
16+
#
17+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
21+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
27+
# THE POSSIBILITY OF SUCH DAMAGE.
28+
# *****************************************************************************
29+
30+
find_package(Python COMPONENTS Development.Module)
31+
32+
if(WIN32)
33+
if(${CMAKE_VERSION} VERSION_LESS "3.27")
34+
# this is a work-around for target_link_options inserting option after -link option, cause
35+
# linker to ignore it.
36+
set(CMAKE_CXX_LINK_FLAGS
37+
"${CMAKE_CXX_LINK_FLAGS} -fsycl-device-code-split=per_kernel"
38+
)
39+
endif()
40+
endif()
41+
42+
# TODO: reuse this library for dpnp ufunc extension build
43+
set(_static_lib_sources
44+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/simplify_iteration_space.cpp
45+
)
46+
set(_tensor_impl_sources
47+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/tensor_ctors.cpp
48+
# ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/accumulators.cpp
49+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/copy_and_cast_usm_to_usm.cpp
50+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/copy_as_contig.cpp
51+
# ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/copy_numpy_ndarray_into_usm_ndarray.cpp
52+
# ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/copy_for_reshape.cpp
53+
# ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/copy_for_roll.cpp
54+
# ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/linear_sequences.cpp
55+
# ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/integer_advanced_indexing.cpp
56+
# ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/boolean_advanced_indexing.cpp
57+
# ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/eye_ctor.cpp
58+
# ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/full_ctor.cpp
59+
# ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/zeros_ctor.cpp
60+
# ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/triul_ctor.cpp
61+
# ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/where.cpp
62+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/device_support_queries.cpp
63+
# ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/repeat.cpp
64+
# ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/clip.cpp
65+
)
66+
67+
set(_static_lib_trgt simplify_iteration_space)
68+
69+
add_library(${_static_lib_trgt} STATIC ${_static_lib_sources})
70+
target_include_directories(
71+
${_static_lib_trgt}
72+
PRIVATE
73+
# ${Python_INCLUDE_DIRS}
74+
# ${Dpctl_INCLUDE_DIR}
75+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/include
76+
)
77+
target_link_libraries(${_static_lib_trgt} PRIVATE pybind11::headers Python::Module)
78+
set_target_properties(${_static_lib_trgt} PROPERTIES POSITION_INDEPENDENT_CODE ON)
79+
80+
set(_py_trgts)
81+
82+
set(python_module_name _tensor_impl)
83+
pybind11_add_module(${python_module_name} MODULE ${_tensor_impl_sources})
84+
add_sycl_to_target(TARGET ${python_module_name} SOURCES ${_tensor_impl_sources})
85+
target_link_libraries(${python_module_name} PRIVATE ${_static_lib_trgt})
86+
list(APPEND _py_trgts ${python_module_name})
87+
88+
set(_clang_prefix "")
89+
if(WIN32)
90+
set(_clang_prefix "/clang:")
91+
endif()
92+
93+
set(_no_fast_math_sources
94+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/copy_and_cast_usm_to_usm.cpp
95+
# ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/full_ctor.cpp
96+
# ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/linear_sequences.cpp
97+
# ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/clip.cpp
98+
# ${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/where.cpp
99+
)
100+
#list(
101+
#APPEND _no_fast_math_sources
102+
# ${_elementwise_sources}
103+
# ${_reduction_sources}
104+
# ${_sorting_sources}
105+
# ${_linalg_sources}
106+
# ${_accumulator_sources}
107+
#)
108+
109+
foreach(_src_fn ${_no_fast_math_sources})
110+
get_source_file_property(_cmpl_options_prop ${_src_fn} COMPILE_OPTIONS)
111+
set(_combined_options_prop ${_cmpl_options_prop} "${_clang_prefix}-fno-fast-math")
112+
set_source_files_properties(
113+
${_src_fn}
114+
PROPERTIES COMPILE_OPTIONS "${_combined_options_prop}"
115+
)
116+
endforeach()
117+
118+
set(_compiler_definitions "")
119+
120+
set(_linker_options "LINKER:${DPNP_LDFLAGS}")
121+
foreach(python_module_name ${_py_trgts})
122+
target_compile_options(
123+
${python_module_name}
124+
PRIVATE -fno-sycl-id-queries-fit-in-int
125+
)
126+
target_link_options(
127+
${python_module_name}
128+
PRIVATE -fsycl-device-code-split=per_kernel
129+
)
130+
# TODO: expand DPCTL_OFFLOAD_COMPRESS to the whole dpnp level
131+
if(DPCTL_OFFLOAD_COMPRESS)
132+
target_link_options(${python_module_name} PRIVATE --offload-compress)
133+
endif()
134+
135+
target_include_directories(
136+
${python_module_name}
137+
PRIVATE
138+
${CMAKE_SOURCE_DIR}/dpnp/backend/include
139+
${Dpctl_INCLUDE_DIR}
140+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/include
141+
${CMAKE_CURRENT_SOURCE_DIR}/libtensor/source/
142+
)
143+
target_link_options(${python_module_name} PRIVATE ${_linker_options})
144+
if(DPCTL_GENERATE_COVERAGE)
145+
if(DPCTL_GENERATE_COVERAGE_FOR_PYBIND11_EXTENSIONS)
146+
target_compile_options(
147+
${python_module_name}
148+
PRIVATE -fprofile-instr-generate -fcoverage-mapping
149+
)
150+
endif()
151+
target_link_options(
152+
${python_module_name}
153+
PRIVATE -fprofile-instr-generate -fcoverage-mapping
154+
)
155+
endif()
156+
if(_dpnp_sycl_targets)
157+
# make fat binary
158+
target_compile_options(
159+
${python_module_name}
160+
PRIVATE ${_dpnp_sycl_target_compile_options}
161+
)
162+
target_link_options(
163+
${python_module_name}
164+
PRIVATE ${_dpnp_sycl_target_link_options}
165+
)
166+
endif()
167+
# TODO: update source so they reference individual libraries instead of
168+
# dpctl4pybind11.hpp. It will allow to simplify dependency tree
169+
# NOTE: dpctl C-API is resolved at runtime via Python
170+
# target_link_libraries(${python_module_name} PRIVATE DpctlCAPI)
171+
if(DPNP_WITH_REDIST)
172+
set_target_properties(
173+
${python_module_name}
174+
PROPERTIES INSTALL_RPATH "$ORIGIN/../../../.."
175+
)
176+
endif()
177+
# TODO: revert to `DESTINATION "dpctl/tensor"`
178+
install(TARGETS ${python_module_name} DESTINATION "dpctl_ext/tensor")
179+
endforeach()

dpctl_ext/tensor/__init__.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# *****************************************************************************
2+
# Copyright (c) 2026, Intel Corporation
3+
# All rights reserved.
4+
#
5+
# Redistribution and use in source and binary forms, with or without
6+
# modification, are permitted provided that the following conditions are met:
7+
# - Redistributions of source code must retain the above copyright notice,
8+
# this list of conditions and the following disclaimer.
9+
# - Redistributions in binary form must reproduce the above copyright notice,
10+
# this list of conditions and the following disclaimer in the documentation
11+
# and/or other materials provided with the distribution.
12+
# - Neither the name of the copyright holder nor the names of its contributors
13+
# may be used to endorse or promote products derived from this software
14+
# without specific prior written permission.
15+
#
16+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
26+
# THE POSSIBILITY OF SUCH DAMAGE.
27+
# *****************************************************************************

dpctl/tensor/libtensor/include/kernels/alignment.hpp renamed to dpctl_ext/tensor/libtensor/include/kernels/alignment.hpp

File renamed without changes.

0 commit comments

Comments
 (0)