@@ -116,6 +116,7 @@ option(LLAMA_MPI "llama: use MPI"
116
116
option (LLAMA_QKK_64 "llama: use super-block size of 64 for k-quants" OFF )
117
117
option (LLAMA_SYCL "llama: use SYCL" OFF )
118
118
option (LLAMA_SYCL_F16 "llama: use 16 bit floats for sycl calculations" OFF )
119
+ set (LLAMA_SYCL_TARGET "INTEL" CACHE STRING "llama: sycl target device" )
119
120
option (LLAMA_CPU_HBM "llama: use memkind for CPU HBM" OFF )
120
121
121
122
option (LLAMA_BUILD_TESTS "llama: build tests" ${LLAMA_STANDALONE} )
@@ -534,6 +535,10 @@ if (LLAMA_HIPBLAS)
534
535
endif ()
535
536
536
537
if (LLAMA_SYCL)
538
+ if (NOT LLAMA_SYCL_TARGET MATCHES "^(INTEL|NVIDIA)$" )
539
+ message (FATAL_ERROR "Invalid backend chosen, supported options are INTEL or NVIDIA" )
540
+ endif ()
541
+
537
542
if ( NOT DEFINED ENV{ONEAPI_ROOT})
538
543
message (FATAL_ERROR "Not detect ENV {ONEAPI_ROOT}, please install oneAPI & source it, like: source /opt/intel/oneapi/setvars.sh" )
539
544
endif ()
@@ -555,14 +560,21 @@ if (LLAMA_SYCL)
555
560
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-narrowing" )
556
561
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3" )
557
562
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsycl -L${MKLROOT} /lib" )
563
+ if (LLAMA_SYCL_TARGET STREQUAL "NVIDIA" )
564
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsycl-targets=nvptx64-nvidia-cuda" )
565
+ endif ()
558
566
559
567
set (GGML_HEADERS_SYCL ggml-sycl.h)
560
568
set (GGML_SOURCES_SYCL ggml-sycl.cpp)
561
569
562
570
if (WIN32 )
563
571
set (LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} -fsycl sycl7 OpenCL mkl_sycl_blas_dll.lib mkl_intel_ilp64_dll.lib mkl_sequential_dll.lib mkl_core_dll.lib)
564
572
else ()
565
- set (LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} -fsycl OpenCL mkl_core pthread m dl mkl_sycl_blas mkl_intel_ilp64 mkl_tbb_thread)
573
+ if (LLAMA_SYCL_TARGET STREQUAL "INTEL" )
574
+ set (LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} -fsycl OpenCL mkl_core pthread m dl mkl_sycl_blas mkl_intel_ilp64 mkl_tbb_thread)
575
+ elseif (LLAMA_SYCL_TARGET STREQUAL "NVIDIA" )
576
+ set (LLAMA_EXTRA_LIBS ${LLAMA_EXTRA_LIBS} -fsycl pthread m dl onemkl)
577
+ endif ()
566
578
endif ()
567
579
endif ()
568
580
0 commit comments