# Vector that always aligns its data to the cache line of the host machine. licenses(["notice"]) cc_library( name = "cache_aligned_vector", hdrs = [ "cache_aligned_vector.h", ], visibility = [ "//sparse_matmul:__subpackages__", ], deps = [ ":aligned_malloc", "//sparse_matmul/numerics:fast_transcendentals", "//sparse_matmul/numerics:types", "//sparse_matmul/os:coop_threads", "@com_google_absl//absl/strings:str_format", ], ) cc_test( name = "cachealignedvector_test", size = "small", srcs = [ "cachealignedvector_test.cc", ], copts = [ "-DFAST_TRANSCENDENTALS", "-DSIGMOID_AS_TANH", ], deps = [ ":cache_aligned_vector", "//sparse_matmul/numerics:test_utils", "//sparse_matmul/os:coop_threads", "@com_google_googletest//:gtest_main", ], ) cc_binary( name = "cachealignedvector_benchmark", srcs = [ "cachealignedvector_benchmark.cc", ], copts = [ "-DFAST_TRANSCENDENTALS", "-DSIGMOID_AS_TANH", "-DACCURATE_TRANSCENDENTAL_APPROX", ], deps = [ ":cache_aligned_vector", "@com_github_google_benchmark//:benchmark", "@com_github_google_benchmark//:benchmark_main", ], ) cc_library( name = "aligned_malloc", srcs = ["aligned_malloc.cc"], hdrs = [ "aligned_malloc.h", ], )