Skip to content

Commit 3621f4e

Browse files
committed
feat: add Safari-safe webgpu runtime and model cache
Switch bridge builds to non-JSPI wasm32 settings with Safari minimum version support, then harden runtime model loading with chunk copy compatibility, adaptive Safari GPU fallback probing, and Cache Storage-backed model fetch reuse.
1 parent 327e2a7 commit 3621f4e

2 files changed

Lines changed: 281 additions & 13 deletions

File tree

CMakeLists.txt

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,12 @@ set(LLAMA_HTTPLIB OFF CACHE BOOL "" FORCE)
2626
set(LLAMA_OPENSSL OFF CACHE BOOL "" FORCE)
2727
set(LLAMA_BUILD_HTML OFF CACHE BOOL "" FORCE)
2828
set(LLAMA_WASM_SINGLE_FILE OFF CACHE BOOL "" FORCE)
29+
set(LLAMA_WASM_MEM64 OFF CACHE BOOL "" FORCE)
2930

3031
set(GGML_NATIVE OFF CACHE BOOL "" FORCE)
3132
set(GGML_OPENMP OFF CACHE BOOL "" FORCE)
3233
set(GGML_WEBGPU ON CACHE BOOL "" FORCE)
34+
set(GGML_WEBGPU_JSPI OFF CACHE BOOL "" FORCE)
3335
set(GGML_VULKAN OFF CACHE BOOL "" FORCE)
3436
set(GGML_METAL OFF CACHE BOOL "" FORCE)
3537
set(GGML_BLAS OFF CACHE BOOL "" FORCE)
@@ -78,9 +80,6 @@ add_library(llamadart_mtmd STATIC
7880
)
7981

8082
target_compile_features(llamadart_mtmd PRIVATE cxx_std_17)
81-
target_compile_options(llamadart_mtmd PRIVATE
82-
"-sMEMORY64=1"
83-
)
8483
target_include_directories(llamadart_mtmd PRIVATE
8584
"${LLAMA_CPP_DIR}/tools/mtmd"
8685
"${LLAMA_CPP_DIR}"
@@ -96,10 +95,6 @@ add_executable(llama_webgpu_core src/llama_webgpu_core.cpp)
9695

9796
target_compile_features(llama_webgpu_core PRIVATE cxx_std_17)
9897

99-
target_compile_options(llama_webgpu_core PRIVATE
100-
"-sMEMORY64=1"
101-
)
102-
10398
target_include_directories(llama_webgpu_core PRIVATE
10499
"${LLAMA_CPP_DIR}/include"
105100
"${LLAMA_CPP_DIR}/ggml/include"
@@ -109,11 +104,9 @@ target_include_directories(llama_webgpu_core PRIVATE
109104
target_link_libraries(llama_webgpu_core PRIVATE llama llamadart_mtmd)
110105

111106
target_link_options(llama_webgpu_core PRIVATE
112-
"-sMEMORY64=1"
113107
"-sALLOW_MEMORY_GROWTH=1"
114108
"-sASSERTIONS=1"
115-
"-sJSPI=1"
116-
"-sJSPI_EXPORTS=['llamadart_webgpu_probe','llamadart_webgpu_load_model','llamadart_webgpu_mmproj_load','llamadart_webgpu_tokenize_to_json','llamadart_webgpu_detokenize_from_json','llamadart_webgpu_generate','llamadart_webgpu_begin_generation','llamadart_webgpu_next_token','llamadart_webgpu_shutdown']"
109+
"-sMIN_SAFARI_VERSION=170400"
117110
"-sMODULARIZE=1"
118111
"-sEXPORT_ES6=1"
119112
"-sEXPORT_NAME=createLlamaWebGpuCoreModule"

0 commit comments

Comments
 (0)