-
Notifications
You must be signed in to change notification settings - Fork 129
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
Fill library node #1576
Comments
Hey @tbennun |
@sahaj1997 Yes! This issue is open and you can take it up. I added some resources on the original post that may be useful. |
hello, is this issue resolved? If not, I would like to take it up |
@kuku929 As long as this issue is open, it is not resolved. We are happy to take any contribution! Please see the above resources. |
I went ahead wrote a basic implementation: https://pastebin.com/B20rvYiM |
Thanks, this looks like a great start! Please post any questions in the issue, as it may help others too. I think you can use that as a basis for a PR. Make one and refer to it here so that we can track it. You should add some tests as well. |
Hello, I have created a draft pull request. |
Filling an entire data container (like an array) with a single value is a common use case in DaCe codes. Instead of manually specifying how a container should be filled, we would like to have a Library Node that specifies that an array should be filled with a certain value. This is also a performant feature because it can be specialized. Examples:
memset
call, or{cuda,hip}Memset
for GPUswmma::fill_fragment
The library node should be implemented with one output leading to the data container to be filled, and an optional input connector called
value
which can specify a runtime value to fill. In case the value is constant or symbolic, the input may exist as a property. This is similar to howalpha
/beta
values are treated in matrix multiplication library nodes.The library node will live in the DaCe Standard library, similarly to other basic operations such as Reduce. To help with the implementation, refer to the einsum library node. To see how input/output connectors can be defined, refer to TensorTranspose.
The implementation tasks are as follows:
Fill
library node in the Standard library'pure'
expansionThe text was updated successfully, but these errors were encountered: