-
-
Notifications
You must be signed in to change notification settings - Fork 110
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
Double support? #83
Comments
Spooky. I googled around, and found a similar question posted on the FastNoiseSIMD. Asked by ME two years ago. Anyway, I also found the even older question, with answer, here: |
https://github.com/users/Auburn/projects/1#card-49182907 It's on the todo list. I am also eager to see this implemented, and willing to help. @Auburn what all is involved in refactoring for double-precision input functions? |
It's quite a difficult task, there would need to be special versions for most the coherent noise nodes so as not to half the performance. FastSIMD would also need support for doubles which is a reasonable amount of work, although hopefully easier to do with the new version I'm working on. |
Ideally this could be done without a macro that disables single-precision support. I had a look at the code and it seems like this is the workload:
|
@Auburn what's the order of magnitude for the timeframe you're expecting for the FastSIMD replacement? I'm evaluating my options for what noise library I should go forward with for now. I would prefer to stick with FastNoise2 for the NoiseTool, graph structure, and the super-fast iteration times from the serialized string noise function encoding. I'm trying to resolve roundoff error issues from the noise input values being indistinguishable at super-high sampling density with these constraints:
|
Hi, the approach in your first would not be that easy. Maybe just converting the scalar version to doubles/int64 would be a good enough stand in for you. The problem with doubles in SIMD is many intrinsics only support floats so there is extra work in finding work arounds for those things. That other part is the performance will be halved, there are ways around this but that requires more work again. Most of the ground work for the new FastSIMD version is now done. I've had a bit a lull in development recently due to moving house, bit I will continue shortly |
I agree, just converting the scalar version would be enough for me for now. Do the SIMD operations benefit the output functions besides the UniformGrid ones? |
I'd just like to voice my support of this feature, I will eventually need doubles for my project :) |
Any news on this?
Since the performance of FastNoise2 seems to be around 5-7x faster than FastNoiseLite, I'd still be happy if the performance was halved tbh. |
@Auburn Checking in on progress here; how is the newer version of FastSIMD? |
I'm currently working on getting the 1.0 version of FastNoise 2 out, that makes use of the new FastSIMD. Once the 1.0 release is done it's on my list to look at |
The examples output to a vector<float>, and I find no mention of Doubles.
Having used the older FastNoise, I remember I could just add
#define FN_USE_DOUBLES
. Is there similar support here?The text was updated successfully, but these errors were encountered: