Fix format / build (#489)

This commit is contained in:
Awni Hannun 2024-01-18 10:01:59 -08:00 committed by GitHub
parent a749a91c75
commit 3d99a8d31d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 17 additions and 10 deletions

View File

@ -19,4 +19,10 @@ std::function<void()> make_task(
"[metal::make_task] Cannot make GPU task without metal backend"); "[metal::make_task] Cannot make GPU task without metal backend");
} }
// No cache for CPU only
bool cache_enabled(void) {
return false;
}
void set_cache_enabled(bool) {}
} // namespace mlx::core::metal } // namespace mlx::core::metal

View File

@ -3,9 +3,9 @@
#include <array> #include <array>
#include "doctest/doctest.h" #include "doctest/doctest.h"
#include "mlx/backend/metal/allocator.h"
#include "mlx/backend/metal/device.h" #include "mlx/backend/metal/device.h"
#include "mlx/backend/metal/metal.h" #include "mlx/backend/metal/metal.h"
#include "mlx/backend/metal/allocator.h"
#include "mlx/mlx.h" #include "mlx/mlx.h"
using namespace mlx::core; using namespace mlx::core;
@ -479,36 +479,37 @@ TEST_CASE("test metal enable/disable cache") {
metal::set_cache_enabled(true); metal::set_cache_enabled(true);
CHECK(metal::cache_enabled()); CHECK(metal::cache_enabled());
auto &a = metal::allocator(); auto& a = metal::allocator();
auto size = 100; auto size = 100;
auto buf = a.malloc(size, false); auto buf = a.malloc(size, false);
// Release a // Release a
a.free(buf); a.free(buf);
// Check size should equals to size // Check size should equals to size
CHECK_EQ(static_cast<MTL::Buffer*>(buf.ptr())->length(), size); CHECK_EQ(static_cast<MTL::Buffer*>(buf.ptr())->length(), size);
} }
// Test disable metal cache // Test disable metal cache
{ {
metal::set_cache_enabled(false); metal::set_cache_enabled(false);
CHECK(!metal::cache_enabled()); CHECK(!metal::cache_enabled());
auto &a = metal::allocator(); auto& a = metal::allocator();
auto size = 100; auto size = 100;
auto buf = a.malloc(size, false); auto buf = a.malloc(size, false);
auto buf_ptr = static_cast<MTL::Buffer*>(buf.ptr()); auto buf_ptr = static_cast<MTL::Buffer*>(buf.ptr());
unsigned char first_byte = *reinterpret_cast<unsigned char*>(buf_ptr); unsigned char first_byte = *reinterpret_cast<unsigned char*>(buf_ptr);
printf("first byte: %d\n", first_byte); printf("first byte: %d\n", first_byte);
// Release a // Release a
a.free(buf); a.free(buf);
// If release successfully, the first byte should be different from the first byte before release // If release successfully, the first byte should be different from the
// first byte before release
unsigned char new_first_byte = *reinterpret_cast<unsigned char*>(buf_ptr); unsigned char new_first_byte = *reinterpret_cast<unsigned char*>(buf_ptr);
printf("new first byte: %d\n", new_first_byte); printf("new first byte: %d\n", new_first_byte);
CHECK_NE(new_first_byte, first_byte); CHECK_NE(new_first_byte, first_byte);
} }
} }