Conversation
…Core.jl into pb/stress-tests
This reverts commit b69d63f.
|
@dennisYatunin @imreddyTeja if you guys get a chance can you check if this is headed in the right direction? |
I don't know exactly what the goals of these tests are, but the test cases do seem good to me. I don't think any similar tests exist at the moment. Another case that might be good to test is everything you have done, but with more complex types. For example, many of the operations can work with nested named tuple |
| Helper function to create a vertical column (finite difference) space setup code string. | ||
| Produces both center and face spaces needed for C2F/F2C operators. | ||
| """ | ||
| function create_column_space() |
There was a problem hiding this comment.
Would you be able to use any of the CommonSpaces functionality instead here?
| warm = join(["curl_op.(v .* $(i).0)" for i in 1:n], " .+ ") | ||
| bench = join(["\$curl_op.(\$v .* $(i).0)" for i in 1:n], " .+ ") | ||
|
|
||
| test_impl = create_spectral_space() * """ |
There was a problem hiding this comment.
Does it make sense to skip/remove the time spent creating the space and filling the input field(s) in the benchmarks? In the sample result, knl_fill! is the primary kernel for a good chunk of the tests
There was a problem hiding this comment.
I believe that time is already skipped, and knl_fill! still ends up as the primary kernel for the simpler operations. I need to dig in further to understand how that works though.
This adds a script that runs a bunch of different broadcast types and complexities with CUDA to see where inlining or overall compilation fails.
TODO
Sample result
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show
show