Skip to content
This repository has been archived by the owner on Apr 24, 2023. It is now read-only.

Rayon support #4

Closed
wants to merge 2 commits into from
Closed

Rayon support #4

wants to merge 2 commits into from

Conversation

LoganDark
Copy link
Owner

@LoganDark LoganDark commented Jun 18, 2022

I made changes in imgref-iter to make this possible.

Behold:

stackblur_1024       ... bench:  18,514,600 ns/iter (+/- 3,095,887)
stackblur_128        ... bench:  11,743,780 ns/iter (+/- 2,533,038)
stackblur_16         ... bench:  11,109,190 ns/iter (+/- 1,912,941)
blur_srgb_1024       ... bench:  17,162,590 ns/iter (+/- 3,337,943)
blur_srgb_128        ... bench:  14,260,590 ns/iter (+/- 2,214,481)
blur_srgb_16         ... bench:  13,107,140 ns/iter (+/- 2,408,900)
par_blur_srgb_1024   ... bench:   4,309,255 ns/iter (+/- 352,918)
par_blur_srgb_128    ... bench:   3,979,880 ns/iter (+/- 305,431)
par_blur_srgb_16     ... bench:   4,063,585 ns/iter (+/- 310,803)

Fixes #3

@LoganDark
Copy link
Owner Author

I'm going to hold off on merging this for now so I can evaluate if ThreadPool::broadcast would be a better choice. I'm going to wait for the final version of that to make it into a Rayon release and then see if I can implement this in terms of broadcast.

In the meantime, I'm open to reviews from others.

@LoganDark LoganDark marked this pull request as draft June 18, 2022 09:58
@LoganDark LoganDark added the enhancement New feature or request label Jun 18, 2022
The times to beat:

stackblur_1024       ... bench:  18,514,600 ns/iter (+/- 3,095,887)
stackblur_128        ... bench:  11,743,780 ns/iter (+/- 2,533,038)
stackblur_16         ... bench:  11,109,190 ns/iter (+/- 1,912,941)

Non-parallel version of `stackblur-iter`:

blur_srgb_1024       ... bench:  17,162,590 ns/iter (+/- 3,337,943)
blur_srgb_128        ... bench:  14,260,590 ns/iter (+/- 2,214,481)
blur_srgb_16         ... bench:  13,107,140 ns/iter (+/- 2,408,900)

New parallel version (with 12 threads):

par_blur_srgb_1024   ... bench:   4,309,255 ns/iter (+/- 352,918)
par_blur_srgb_128    ... bench:   3,979,880 ns/iter (+/- 305,431)
par_blur_srgb_16     ... bench:   4,063,585 ns/iter (+/- 310,803)
@LoganDark
Copy link
Owner Author

Merged as part of #6

@LoganDark LoganDark closed this Jul 18, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Feature Request: Multithreading (rayon)
1 participant