mirror of
https://github.com/ml-explore/mlx.git
synced 2025-06-24 09:21:16 +08:00

* einsum initial * fix comma break * sum axis was wrong * small cleanups * python binding * changed bindings to resemble numpy * remove todo comment * comment changes * add count of operands/inputs * fail fast if operands list is empty * ignore comma if no output * einsum path matching numpy * getting somewhere with path * remove print * it passes the first test * moved einsum tests to seperate file * seperated einsum path * moved einsum naive * remove space from equation * fast fail if no operands passed * update tests and remove printf * small cleanup * some more cleanups * removed python helper file * ack * utilize std for finding min in vector * duplicate def * remove the tuple as it was unreadable * moved einsum_naive back to ops * remaining isn't needed * avoid creating another set * cleanup * greedy path, start of naive einsum * more einsum * fix some bugs * some more fixes, tests pass * benchmark * some simplify * fix einsum and test Co-authored-by: Angelos Katharopoulos <a_katharopoulos@apple.com> * add a bunch more tests and fix a bunch more bugs * some docs nits --------- Co-authored-by: dc-dc-dc <dgcruz983@gmail.com> Co-authored-by: Angelos Katharopoulos <a_katharopoulos@apple.com>
45 lines
917 B
CMake
45 lines
917 B
CMake
FetchContent_Declare(
|
|
doctest
|
|
GIT_REPOSITORY "https://github.com/onqtam/doctest"
|
|
GIT_TAG "ae7a13539fb71f270b87eb2e874fbac80bc8dda2"
|
|
)
|
|
FetchContent_MakeAvailable(doctest)
|
|
|
|
add_executable(tests ${PROJECT_SOURCE_DIR}/tests/tests.cpp)
|
|
|
|
if (MLX_BUILD_METAL)
|
|
set(
|
|
METAL_TEST_SOURCES
|
|
metal_tests.cpp
|
|
)
|
|
endif()
|
|
|
|
include(${doctest_SOURCE_DIR}/scripts/cmake/doctest.cmake)
|
|
|
|
target_sources(tests PRIVATE
|
|
allocator_tests.cpp
|
|
array_tests.cpp
|
|
arg_reduce_tests.cpp
|
|
autograd_tests.cpp
|
|
blas_tests.cpp
|
|
compile_tests.cpp
|
|
custom_vjp_tests.cpp
|
|
creations_tests.cpp
|
|
device_tests.cpp
|
|
einsum_tests.cpp
|
|
eval_tests.cpp
|
|
fft_tests.cpp
|
|
load_tests.cpp
|
|
ops_tests.cpp
|
|
random_tests.cpp
|
|
scheduler_tests.cpp
|
|
utils_tests.cpp
|
|
vmap_tests.cpp
|
|
linalg_tests.cpp
|
|
${METAL_TEST_SOURCES}
|
|
)
|
|
|
|
target_link_libraries(tests PRIVATE mlx doctest)
|
|
doctest_discover_tests(tests)
|
|
add_test(NAME tests COMMAND tests)
|