Some checks failed
Linux Build / Linux cpu (push) Has been cancelled
Linux Build / Linux cpu-clang (push) Has been cancelled
Linux Build / Linux vulkan (push) Has been cancelled
mac-build / macOS CPU (push) Has been cancelled
Nix Build / Nix (cpu) (push) Has been cancelled
Nix Build / Nix (vulkan) (push) Has been cancelled
windows-build / Windows CPU (push) Has been cancelled
58 lines
1.8 KiB
CMake
58 lines
1.8 KiB
CMake
#
|
|
# mnist-common
|
|
|
|
set(TEST_TARGET mnist-common)
|
|
add_library(${TEST_TARGET} STATIC mnist-common.cpp)
|
|
target_link_libraries(${TEST_TARGET} PRIVATE ggml common)
|
|
|
|
#
|
|
# mnist-eval
|
|
|
|
set(TEST_TARGET mnist-eval)
|
|
add_executable(${TEST_TARGET} mnist-eval.cpp)
|
|
target_link_libraries(${TEST_TARGET} PRIVATE ggml common mnist-common)
|
|
|
|
#
|
|
# mnist-train
|
|
|
|
set(TEST_TARGET mnist-train)
|
|
add_executable(${TEST_TARGET} mnist-train.cpp)
|
|
target_link_libraries(${TEST_TARGET} PRIVATE ggml common mnist-common)
|
|
|
|
|
|
#
|
|
# mnist-wasm
|
|
if (EMSCRIPTEN)
|
|
set(TARGET mnist)
|
|
|
|
add_executable(${TARGET} mnist-common.cpp)
|
|
target_link_libraries(${TARGET} PRIVATE ggml ggml-cpu)
|
|
|
|
set_target_properties(${TARGET} PROPERTIES LINK_FLAGS " \
|
|
--bind \
|
|
-s FORCE_FILESYSTEM=1 \
|
|
-s USE_PTHREADS=1 \
|
|
-s PTHREAD_POOL_SIZE=10 \
|
|
-s ASSERTIONS=1 \
|
|
-s WASM=1 \
|
|
-s EXPORTED_RUNTIME_METHODS=\"['ccall', 'cwrap', 'setValue', 'getValue']\" \
|
|
-s EXPORTED_FUNCTIONS=\"['_wasm_eval','_wasm_random_digit','_malloc','_free']\" \
|
|
-s ALLOW_MEMORY_GROWTH=1 \
|
|
--preload-file ${CMAKE_CURRENT_SOURCE_DIR}/mnist-f32.gguf@/ \
|
|
--preload-file ${CMAKE_CURRENT_SOURCE_DIR}/t10k-images-idx3-ubyte@/ \
|
|
")
|
|
|
|
# Copy output to web directory
|
|
add_custom_command(
|
|
TARGET ${TARGET} POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy
|
|
${CMAKE_BINARY_DIR}/bin/mnist.js
|
|
${CMAKE_CURRENT_SOURCE_DIR}/web/mnist.js
|
|
COMMAND ${CMAKE_COMMAND} -E copy
|
|
${CMAKE_BINARY_DIR}/bin/mnist.wasm
|
|
${CMAKE_CURRENT_SOURCE_DIR}/web/mnist.wasm
|
|
COMMAND ${CMAKE_COMMAND} -E copy
|
|
${CMAKE_BINARY_DIR}/bin/mnist.worker.js
|
|
${CMAKE_CURRENT_SOURCE_DIR}/web/mnist.worker.js
|
|
)
|
|
endif()
|