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

[Library] Add cublas library #404

Merged
merged 4 commits into from
Jan 3, 2024
Merged

Conversation

yaoyaoding
Copy link
Member

This PR add cublas to hidet.

Check the tests/cuda/test_cublas.py for the usage of cublas in hidet.

@yaoyaoding yaoyaoding merged commit f70e5e6 into hidet-org:main Jan 3, 2024
2 checks passed
@yaoyaoding yaoyaoding deleted the cublass branch January 3, 2024 17:06
vadiklyutiy pushed a commit that referenced this pull request Dec 19, 2024
The issue is caused by a wrong layout for the bias tensor.   
For example, we consider a bias tensor of shape (64, ) and its layout
can be written as
`(64, ): (1, )`
However, we can expand the layout by adding axes with 1-shape.  
For example, 
`(64, 1):(1, 1)`
Since the shape is equal to 1, the stride can be any number. The stride
corresponding to the 1-shape actually doesn't affect the computation of
the address. But two strides that are equal to one will influence the
instruction selection, and the invalid memory instruction leads to the
misaligned access.
To fix this issue, we force the stride paired with 1-shape to be 0. The
layout is equivalent when computing the memory address, and this will
help the compiler make the right decision in the instruction selection
pass.
closes #404

Co-authored-by: xiaocenxiaocen <xiao.zhang@centml.ai>
vadiklyutiy pushed a commit that referenced this pull request Dec 20, 2024
The issue is caused by a wrong layout for the bias tensor.   
For example, we consider a bias tensor of shape (64, ) and its layout
can be written as
`(64, ): (1, )`
However, we can expand the layout by adding axes with 1-shape.  
For example, 
`(64, 1):(1, 1)`
Since the shape is equal to 1, the stride can be any number. The stride
corresponding to the 1-shape actually doesn't affect the computation of
the address. But two strides that are equal to one will influence the
instruction selection, and the invalid memory instruction leads to the
misaligned access.
To fix this issue, we force the stride paired with 1-shape to be 0. The
layout is equivalent when computing the memory address, and this will
help the compiler make the right decision in the instruction selection
pass.
closes #404

Co-authored-by: xiaocenxiaocen <xiao.zhang@centml.ai>
vadiklyutiy pushed a commit that referenced this pull request Dec 26, 2024
The issue is caused by a wrong layout for the bias tensor.   
For example, we consider a bias tensor of shape (64, ) and its layout
can be written as
`(64, ): (1, )`
However, we can expand the layout by adding axes with 1-shape.  
For example, 
`(64, 1):(1, 1)`
Since the shape is equal to 1, the stride can be any number. The stride
corresponding to the 1-shape actually doesn't affect the computation of
the address. But two strides that are equal to one will influence the
instruction selection, and the invalid memory instruction leads to the
misaligned access.
To fix this issue, we force the stride paired with 1-shape to be 0. The
layout is equivalent when computing the memory address, and this will
help the compiler make the right decision in the instruction selection
pass.
closes #404

Co-authored-by: xiaocenxiaocen <xiao.zhang@centml.ai>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant