Skip to content
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

Half matrix and components #1708

Open
wants to merge 12 commits into
base: half_type
Choose a base branch
from
Open

Half matrix and components #1708

wants to merge 12 commits into from

Conversation

yhmtsai
Copy link
Member

@yhmtsai yhmtsai commented Oct 24, 2024

This PR adds the matrix and components (like arrary/device_matrix_data) with half precision support

Also, to avoid touch the files, which are not related to this PR, I add several type list with half additionally.
For example, RealValueTypes -> RealValueTypesWithHalf and next_precision -> next_precision_with_half
(We will add bfloat16 in the future, so maybe do not use Half)

for the friend and corresponding function

friend class <prev<value_type>> // class previous precision can access this
function(class <next<value_type>>) // it can access the class with next precision because it is class with previous precision of class with next precision.

If we only use next in friend and function

friend class <next<next<value_type>>>
function(class <next<value_type>>)

Moreover, the second one does not work when we fallback the next_precision_with_half to next_precision by disabling half because next<next<value_type>> is value_type without half now. However, the first one always work.

TODO:

@yhmtsai yhmtsai requested review from a team October 24, 2024 15:30
@yhmtsai yhmtsai self-assigned this Oct 24, 2024
@ginkgo-bot ginkgo-bot added reg:build This is related to the build system. reg:testing This is related to testing. type:solver This is related to the solvers type:matrix-format This is related to the Matrix formats type:factorization This is related to the Factorizations type:reordering This is related to the matrix(LinOp) reordering mod:all This touches all Ginkgo modules. labels Oct 24, 2024
@yhmtsai yhmtsai mentioned this pull request Oct 24, 2024
12 tasks
@yhmtsai yhmtsai force-pushed the half_matrix branch 2 times, most recently from 8f3a17d to b7d4a15 Compare October 25, 2024 08:20
@yhmtsai yhmtsai added this to the Ginkgo 1.9.0 milestone Oct 25, 2024
@yhmtsai yhmtsai added the 1:ST:ready-for-review This PR is ready for review label Oct 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1:ST:ready-for-review This PR is ready for review mod:all This touches all Ginkgo modules. reg:build This is related to the build system. reg:testing This is related to testing. type:factorization This is related to the Factorizations type:matrix-format This is related to the Matrix formats type:reordering This is related to the matrix(LinOp) reordering type:solver This is related to the solvers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants