← Back to context

Comment by pixelesque

4 hours ago

The tests and notebooks maybe: not the unrolling and re-architecting to use masking SIMD-ification. I used to do SIMD stuff a lot over the last 17 years, and it would have taken me probably a day to do that (convert 7 algorithms, all with support for various wrapping/mirroring/clamping extent-handling, so around 800 raw source file lines of templated C++) to use SIMD - and well.

Then it probably would have taken me at least half a day to think about what tests to write and to make them.

It did it in around 5 minutes. I had to check it, and it wasn't perfect, but it compiled, ran, and was very close.

Sorry, but this is just not a complex or hard task in image processing. Image resizing is a staple algorithm as common as bread and butter.

  • You could convert ~800 lines of scalar float processing templated C++ code that used mixins for wrapping logic and float/double to well-optimised SIMD code for two different ISAs (without using wrapper class helpers, it wrote the full intrinsics) in under 5 minutes and write tests for them at the same time?

    It's the time compression I'm impressed with.

    • This is a sifferent point than what the thread started with (speed vs. correct output for hard problems). Yours stands, but it changed the direction of the discussion as I understand it. Hence the pushback.