You can do some SIMD with system.numerics.vectors but it is pretty limited. No ceiling, no floor, no convert, no shifting. So you can't speed up perlin/simplex noise any (at least I haven't managed to find a way). Good news - ceiling, floor, and convert are coming! Which would make it possible to do perlin/simplex noise directly in C# a lot faster. Shift left and shift right they are working on but there are some issues with making that happen, so it might not happen.
So yeah I 'm just calling C++
You can see my setup here:
https://github.com/jackmott/prpgcs
FastNoise is the C++ Code
Noise.cs in the C# project is what calls it.
You need to get chunks at a time as calling to C++ from C# has some cost. I'm grabbing 64x64 blocks of noise at a time at the moment, which seems to work fine.I haven't benchmarked an optimum scheme yet.
latest screenshot! working on the UI for talking to npcs: