CoolFace
Modelpublic

Codeprocastinator/optimized-tinyllama-covalent

sourceHugging Faceapache-2.0updated 1y agoView on Hugging Face
0likes119downloads
CMakeLists.txt161 linesDownload Raw Back to tests
1llama_add_compile_flags()2 3function(llama_test target)4    include(CMakeParseArguments)5    set(options)6    set(oneValueArgs NAME LABEL WORKING_DIRECTORY)7    set(multiValueArgs ARGS)8    cmake_parse_arguments(LLAMA_TEST "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})9 10    if (NOT DEFINED LLAMA_TEST_LABEL)11        set(LLAMA_TEST_LABEL "main")12    endif()13    if (NOT DEFINED LLAMA_TEST_WORKING_DIRECTORY)14        set(LLAMA_TEST_WORKING_DIRECTORY .)15    endif()16    if (DEFINED LLAMA_TEST_NAME)17        set(TEST_NAME ${LLAMA_TEST_NAME})18    else()19        set(TEST_NAME ${target})20    endif()21 22    set(TEST_TARGET ${target})23 24    add_test(25        NAME ${TEST_NAME}26        WORKING_DIRECTORY ${LLAMA_TEST_WORKING_DIRECTORY}27        COMMAND $<TARGET_FILE:${TEST_TARGET}>28        ${LLAMA_TEST_ARGS})29 30    set_property(TEST ${TEST_NAME} PROPERTY LABELS ${LLAMA_TEST_LABEL})31endfunction()32 33# Builds and runs a test source file.34# Optional args:35# - NAME: name of the executable & test target (defaults to the source file name without extension)36# - LABEL: label for the test (defaults to main)37# - ARGS: arguments to pass to the test executable38# - WORKING_DIRECTORY39function(llama_target_and_test source)40    include(CMakeParseArguments)41    set(options)42    set(oneValueArgs NAME LABEL WORKING_DIRECTORY)43    set(multiValueArgs ARGS)44    cmake_parse_arguments(LLAMA_TEST "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})45 46    if (NOT DEFINED LLAMA_TEST_LABEL)47        set(LLAMA_TEST_LABEL "main")48    endif()49    if (NOT DEFINED LLAMA_TEST_WORKING_DIRECTORY)50        set(LLAMA_TEST_WORKING_DIRECTORY .)51    endif()52    if (DEFINED LLAMA_TEST_NAME)53        set(TEST_TARGET ${LLAMA_TEST_NAME})54    else()55        get_filename_component(TEST_TARGET ${source} NAME_WE)56    endif()57 58    add_executable(${TEST_TARGET} ${source} get-model.cpp)59    install(TARGETS ${TEST_TARGET} RUNTIME)60    target_link_libraries(${TEST_TARGET} PRIVATE common)61    add_test(62        NAME ${TEST_TARGET}63        WORKING_DIRECTORY ${LLAMA_TEST_WORKING_DIRECTORY}64        COMMAND $<TARGET_FILE:${TEST_TARGET}>65        ${LLAMA_TEST_ARGS})66 67    set_property(TEST ${TEST_TARGET} PROPERTY LABELS ${LLAMA_TEST_LABEL})68endfunction()69 70# build test-tokenizer-0 target once and add many tests71add_executable(test-tokenizer-0 test-tokenizer-0.cpp)72target_link_libraries(test-tokenizer-0 PRIVATE common)73install(TARGETS test-tokenizer-0 RUNTIME)74 75llama_test(test-tokenizer-0 NAME test-tokenizer-0-bert-bge          ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-bert-bge.gguf)76llama_test(test-tokenizer-0 NAME test-tokenizer-0-command-r         ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-command-r.gguf)77llama_test(test-tokenizer-0 NAME test-tokenizer-0-deepseek-coder    ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-deepseek-coder.gguf)78llama_test(test-tokenizer-0 NAME test-tokenizer-0-deepseek-llm      ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-deepseek-llm.gguf)79llama_test(test-tokenizer-0 NAME test-tokenizer-0-falcon            ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-falcon.gguf)80llama_test(test-tokenizer-0 NAME test-tokenizer-0-gpt-2             ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-gpt-2.gguf)81llama_test(test-tokenizer-0 NAME test-tokenizer-0-llama-bpe         ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-llama-bpe.gguf)82llama_test(test-tokenizer-0 NAME test-tokenizer-0-llama-spm         ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-llama-spm.gguf)83llama_test(test-tokenizer-0 NAME test-tokenizer-0-mpt               ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-mpt.gguf)84llama_test(test-tokenizer-0 NAME test-tokenizer-0-phi-3             ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-phi-3.gguf)85llama_test(test-tokenizer-0 NAME test-tokenizer-0-qwen2             ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-qwen2.gguf)86llama_test(test-tokenizer-0 NAME test-tokenizer-0-refact            ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-refact.gguf)87llama_test(test-tokenizer-0 NAME test-tokenizer-0-starcoder         ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-starcoder.gguf)88 89if (LLAMA_LLGUIDANCE)90    llama_target_and_test(test-grammar-llguidance.cpp ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-llama-bpe.gguf)91endif ()92 93if (NOT WIN32)94    # these tests are disabled on Windows because they use internal functions not exported with LLAMA_API95    llama_target_and_test(test-sampling.cpp)96    llama_target_and_test(test-grammar-parser.cpp)97    llama_target_and_test(test-grammar-integration.cpp)98    llama_target_and_test(test-llama-grammar.cpp)99    llama_target_and_test(test-chat.cpp)100    # TODO: disabled on loongarch64 because the ggml-ci node lacks Python 3.8101    if (NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "loongarch64")102        llama_target_and_test(test-json-schema-to-grammar.cpp   WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/..)103        target_include_directories(test-json-schema-to-grammar PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../examples/server)104    endif()105 106 107    # build test-tokenizer-1-bpe target once and add many tests108    add_executable(test-tokenizer-1-bpe test-tokenizer-1-bpe.cpp)109    target_link_libraries(test-tokenizer-1-bpe PRIVATE common)110    install(TARGETS test-tokenizer-1-bpe RUNTIME)111 112    # TODO: disabled due to slowness113    #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-aquila    ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-aquila.gguf)114    #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-falcon    ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-falcon.gguf)115    #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-gpt-2     ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-gpt-2.gguf)116    #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-gpt-neox  ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-gpt-neox.gguf)117    #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-llama-bpe ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-llama-bpe.gguf --ignore-merges)118    #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-mpt       ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-mpt.gguf)119    #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-refact    ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-refact.gguf)120    #llama_test(test-tokenizer-1-bpe NAME test-tokenizer-1-starcoder ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-starcoder.gguf)121 122    # build test-tokenizer-1-spm target once and add many tests123    add_executable(test-tokenizer-1-spm test-tokenizer-1-spm.cpp)124    target_link_libraries(test-tokenizer-1-spm PRIVATE common)125    install(TARGETS test-tokenizer-1-spm RUNTIME)126 127    llama_test(test-tokenizer-1-spm  NAME test-tokenizer-1-llama-spm ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-llama-spm.gguf)128    #llama_test(test-tokenizer-1-spm  NAME test-tokenizer-1-baichuan  ARGS ${CMAKE_CURRENT_SOURCE_DIR}/../models/ggml-vocab-baichuan.gguf)129 130    # llama_target_and_test(test-double-float.cpp) # SLOW131endif()132 133llama_target_and_test(test-log.cpp)134llama_target_and_test(test-chat-template.cpp)135 136# this fails on windows (github hosted runner) due to curl DLL not found (exit code 0xc0000135)137if (NOT WIN32)138    llama_target_and_test(test-arg-parser.cpp)139endif()140 141# llama_target_and_test(test-opt.cpp) # SLOW142llama_target_and_test(test-gguf.cpp)143llama_target_and_test(test-backend-ops.cpp)144 145llama_target_and_test(test-model-load-cancel.cpp  LABEL "model")146llama_target_and_test(test-autorelease.cpp        LABEL "model")147 148if (NOT GGML_BACKEND_DL)149    # these tests use the backends directly and cannot be built with dynamic loading150    llama_target_and_test(test-barrier.cpp)151    llama_target_and_test(test-quantize-fns.cpp)152    llama_target_and_test(test-quantize-perf.cpp)153    llama_target_and_test(test-rope.cpp)154endif()155 156 157# dummy executable - not installed158get_filename_component(TEST_TARGET test-c.c NAME_WE)159add_executable(${TEST_TARGET} test-c.c)160target_link_libraries(${TEST_TARGET} PRIVATE llama)161