2020__CACHE_VERSION = "1"
2121
2222
23- def find_sycl (include_dir : list [str ]) -> tuple [list [str ], str ]:
23+ def find_sycl (include_dir : list [str ]) -> tuple [list [str ], list [ str ] ]:
2424 """
2525 Looks for the sycl library in known places.
2626
@@ -34,7 +34,6 @@ def find_sycl(include_dir: list[str]) -> tuple[list[str], str]:
3434 AssertionError: if library was not found.
3535 """
3636 include_dir = include_dir .copy ()
37- sycl_dir = None
3837 assertion_message = ("sycl headers not found, please install `icpx` compiler, "
3938 "or provide `ONEAPI_ROOT` environment "
4039 "or install `intel-sycl-rt>=2025.0.0` wheel" )
@@ -44,7 +43,7 @@ def find_sycl(include_dir: list[str]) -> tuple[list[str], str]:
4443 compiler_root = os .path .abspath (f"{ icpx_path } /../.." )
4544 include_dir += [os .path .join (compiler_root , "include" ), os .path .join (compiler_root , "include/sycl" )]
4645 sycl_dir = os .path .join (compiler_root , "lib" )
47- return include_dir , sycl_dir
46+ return include_dir , [ sycl_dir ]
4847
4948 oneapi_root = os .getenv ("ONEAPI_ROOT" )
5049 if oneapi_root :
@@ -53,7 +52,7 @@ def find_sycl(include_dir: list[str]) -> tuple[list[str], str]:
5352 os .path .join (oneapi_root , "compiler/latest/include/sycl" )
5453 ]
5554 sycl_dir = os .path .join (oneapi_root , "compiler/latest/lib" )
56- return include_dir , sycl_dir
55+ return include_dir , [ sycl_dir ]
5756
5857 try :
5958 sycl_rt = importlib .metadata .metadata ("intel-sycl-rt" )
@@ -63,18 +62,21 @@ def find_sycl(include_dir: list[str]) -> tuple[list[str], str]:
6362 if sycl_rt .get ("version" , "0.0.0" ).startswith ("2024" ):
6463 raise AssertionError (assertion_message )
6564
65+ sycl_dirs = []
6666 for f in importlib .metadata .files ("intel-sycl-rt" ):
6767 # sycl/sycl.hpp and sycl/CL/sycl.hpp results in both folders
6868 # being add: include and include/sycl.
6969 if f .name == "sycl.hpp" :
7070 include_dir += [str (f .locate ().parent .parent .resolve ())]
71- if f .name in ["libsycl.so" , "sycl8.dll" ]:
71+ if f .name in ["libsycl.so" , "sycl8.dll" , "sycl8.lib" ]:
7272 sycl_dir = str (f .locate ().parent .resolve ())
7373 # should we handle `_` somehow?
7474 if os .name == "nt" :
7575 _ = os .add_dll_directory (sycl_dir )
76+ sycl_dirs .append (sycl_dir )
7677
77- return include_dir , sycl_dir
78+ assert len (sycl_dirs ) != 0
79+ return include_dir , sycl_dirs
7880
7981
8082class CompilationHelper :
@@ -86,7 +88,11 @@ def __init__(self):
8688 self ._library_dir = None
8789 self ._include_dir = None
8890 self ._libsycl_dir = None
89- self .libraries = ['ze_loader' , 'sycl' ]
91+ self .libraries = ['ze_loader' ]
92+ if os .name != "nt" :
93+ self .libraries += ["sycl" ]
94+ else :
95+ self .libraries += ['sycl8' ]
9096
9197 @property
9298 def inject_pytorch_dep (self ):
@@ -100,7 +106,7 @@ def _compute_compilation_options_lazy(self):
100106 library_dir = []
101107 include_dir , self ._libsycl_dir = find_sycl (include_dir )
102108 if self ._libsycl_dir :
103- library_dir += [ self ._libsycl_dir ]
109+ library_dir += self ._libsycl_dir
104110 if os .name == "nt" :
105111 library_dir += [os .path .join (ze_root , "lib" )]
106112
@@ -133,7 +139,7 @@ def include_dir(self) -> list[str]:
133139 return self ._include_dir
134140
135141 @cached_property
136- def libsycl_dir (self ) -> str :
142+ def libsycl_dir (self ) -> list [ str ] :
137143 self ._compute_compilation_options_lazy
138144 return self ._libsycl_dir
139145
@@ -217,9 +223,9 @@ def compile_module_from_src(src, name):
217223 extra_compiler_args = []
218224 if COMPILATION_HELPER .libsycl_dir :
219225 if os .name == "nt" :
220- extra_compiler_args += ["/LIBPATH:" + COMPILATION_HELPER .libsycl_dir ]
226+ extra_compiler_args += ["/LIBPATH:" + dir for dir in COMPILATION_HELPER .libsycl_dir ]
221227 else :
222- extra_compiler_args += ["-Wl,-rpath," + COMPILATION_HELPER .libsycl_dir ]
228+ extra_compiler_args += ["-Wl,-rpath," + dir for dir in COMPILATION_HELPER .libsycl_dir ]
223229
224230 so = _build (name , src_path , tmpdir , COMPILATION_HELPER .library_dir , COMPILATION_HELPER .include_dir ,
225231 COMPILATION_HELPER .libraries , extra_compile_args = extra_compiler_args )
0 commit comments