-
Notifications
You must be signed in to change notification settings - Fork 156
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Identify and list features of existing extended floating point wrapper types #1451
Comments
Kokkos has It has a few levels of abstraction (as Kokkos does), but the core abstract implementation is here: https://github.com/kokkos/kokkos/blob/master/core/src/impl/Kokkos_Half_FloatingPointWrapper.hpp ; and, as an example, the way it'll picks a proper type for CUDA if a given version/arch supports it is here: https://github.com/kokkos/kokkos/blob/master/core/src/Cuda/Kokkos_Cuda_Half_Impl_Type.hpp |
In rapidsai/raft ANN benchmarks, we don't have a wrapper; instead, we have a uint16_t stub for CPU-only builds. Also across raft, the lack of |
Thanks @achirkin, this is really helpful feedback. We've heard a lot of similar things, and so we're working on figuring out how to address all of these problems and more :) |
I bricked my workstation for a few hours so here is a comparison. I tried to be diligent, but it is hard to find every function: half
|
Awesome work @miscco. I think the only missing piece is to understand what each of these solutions does for atomic operations. Do they overload things like @cliffburdick was there anything you recall having to add for the matx types that you don't see reflected in the table above? |
Not sure why I didn't see this. I think this is comprehensive, but one of the main issues was also having types that are compatible with their complex counterparts. |
@cliffburdick said it best:
As it happens, there appears to be a lot of projects and people who feel the same:
cutlass::bfloat16_t
cutlass::half_t
cute::bfloat
(alias tocutlass::bfloat16_t
)cute::half
(alias tocutlass::half_t
)matx::matxFp16
matx::matxBf16
cub::half_t
cub::bfloat16_t
c10::BFloat16
c10::Half
Eigen::BFloat16
Eigen::Half
Things to look into:
The text was updated successfully, but these errors were encountered: