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

Extended inline PTX to support multiple output and by-ref parameters. #760

Merged
merged 1 commit into from
Apr 1, 2022

Conversation

MoFtZ
Copy link
Collaborator

@MoFtZ MoFtZ commented Feb 23, 2022

Related to MoFtZ/ILGPU.OptiX#2.

The current implementation of CudaAsm supports an Emit function that accepts up to 10 parameters, with the first parameter allowed to be an output variable. Unfortunately, this does not support more complex scenarios like optixTrace which has up to 44 argument, with up to 32 by-reference parameters.

This PR introduces the new EmitRef function that accepts up to 44 parameters, and passes all parameters by-reference. Each parameter can be one of Input<T>, Output<T> or Ref<T>, where T is struct (rather than unmanaged) in order to support bool.

This should then allow the implementation of optixTrace.

@m4rs-mt m4rs-mt added enhancement feature A new feature (or feature request) labels Feb 24, 2022
@m4rs-mt m4rs-mt added this to the v1.2 milestone Feb 24, 2022
@MoFtZ
Copy link
Collaborator Author

MoFtZ commented Mar 31, 2022

Resolved conflicts on Src\ILGPU\CompatibilitySuppressions.xml, and rebased.

@m4rs-mt m4rs-mt merged commit 562371a into m4rs-mt:master Apr 1, 2022
@MoFtZ MoFtZ deleted the feature/cuda-emit-ref branch April 1, 2022 06:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement feature A new feature (or feature request)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants