Open keremnymn opened 4 months ago
Ah this is because we have that implemented for target_os = "macos"
and target_os = "linux"
. I guess we need an implementation for target_os = "android"
?
Alternatively, we have a feature flag fp16kernels
in lance-linalg
. Perhaps we could replicate that flag in lance-core
and gate these functions behind that.
The same error occurs building for aarch64-pc-windows.
Regarding another conditional implementation in cpu.rs
, there is a IsProcessorFeaturePresent
method where you can check for PF_ARM_NEON_INSTRUCTIONS_AVAILABLE
^1. I'm not sure if that captures what we're checking for neatly, or if we need to use it in combination with something else ^3.
Regarding using a feature flag, how does that work if only some processors support it for Windows, Linux, and Android? It looks like it's enabled for the Python build for x86_64-unknown-linux ^4. (Does that mean the Python package won't work if someone runs it on an x86_64 machine without capability?)
Perhaps #2512 is a reasonable first step?
Regarding using a feature flag, how does that work if only some processors support it for Windows, Linux, and Android?
The intention of the fp16kernels
is that it will compile multiple versions of the fp16 stuff to support different CPU architectures ^1, and do dynamic dispatch at runtime ^2. For example, on x86_64, we have both avx512 and AVX versions of it. So as long as we have a good implementation of has_neon_f16_support
or similar, the dynamic dispatch should work fine.
Currently my workaround for this is changing these lines to
#[cfg(target_arch = "aarch64")]
{
SimdSupport::None
}
Giving up on the SimdSupport
until the logic is changed or fixed
Currently my workaround for this is changing these lines to
#[cfg(target_arch = "aarch64")] { SimdSupport::None }
Giving up on the
SimdSupport
until the logic is changed or fixed
Hey, any updates? I was having the same issue, @keremnymn fix worked.
Hi,
I am trying to build my Tauri app which uses
lancedb = "0.5.0"
but it fails due to the following error: