-
Notifications
You must be signed in to change notification settings - Fork 22
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
Curand switch #873
Curand switch #873
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
I'm not super keen on adding more library macros, which will make installing flamegpu system wide / providing pre-compiled binaries less flexible, but the required templating will probably be more painful than not. Though potentially as there are only 3 accepted curand types this could just be explicitly instantiated, with the macro required / used at model compilation instead? With the philox 128byte versions, I'd probably rather make the api methods available for the other generators too so they models do not need specialising based on the value of the compile time macro (i.e. if someone needs 4 floats at once, they can just use the float4 version and philox will just run faster, where as the other generators will just be called 4 times. This will probably eat a few more registers, but shouldn't be too expensive) |
This is more a case of a hyper-advanced setting where we choose a default and don't expect anyone to ever have a reason to change it. Happy to leave it undocumented tbh.
This just doesn't feel viable, same way we haven't included agent out state as a template arg to DeviceAPI.
This seems fair. |
Now getting Link errors when I try to build with Philox. They don't make much sense, and I cba to dig into it right now. Pete says build's fine for him on Linux. |
This allows the backing engine to be swapped with a preprocessor definition Have ran full test suite with Philox, and AgentRandom suite with MRG32
b0e9f86
to
900e884
Compare
c023495
to
4f358e8
Compare
Have now built and ran test suite for each of the 3 curand engine's consecutively. All worked as expected. When running pyflamegpu test suite, it crashes with a fatal error (see end of this comment). However, that error is also currently present in the This error only occurs running full suite, the individual
|
I've opened #938 to move the philox 128 bytes optimisation to a future API extension. |
I've reproduced the vis pyfalmegpu test suite failure in a release build under linux using current master (a76da8c)
Will promote that to a separate issue. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just the one highglited issue of the new typedefs being in the global namespace to sort (and potentially a slight rename).
Otherwise c++ tests all pass fine under linux with philox and mrg (assuming xorwow is still fine), and the CMake option works nicely / gives very useful errror message.
Will be a big improvement to the submodel benchmark (when using CUDA <= 11.2, and should still be an iprovement since then).
String with suitable values MRG, PHILOX and XORWOW (case-insensitive), other values will produce an error at configure time.
…XORWOW) Previous behaviour can be retained by setting CURAND_ENGINE to XORWOW at CMake configuration time.
e379338
to
ee74445
Compare
Add philox specific double/quad generation methods?(Expose Philox generation of mulitple RNG values (128 Bytes) #938)Also fixed the warnings in test suite which @MILeach said they'd do weeks ago.(Removed in rebase, as It had been resolved elsewhere)Also added
USE_GLM
status to the RTC short reference as this had previously been missed.Not assigning this to myself, someone else may pick it up to finish before me.