initial release
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
#
|
||||
# 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()
|
||||
Reference in New Issue
Block a user