Skip to content
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

Parallelize resampling (with high delay) #176

Open
arlofaria opened this issue Jan 13, 2022 · 8 comments
Open

Parallelize resampling (with high delay) #176

arlofaria opened this issue Jan 13, 2022 · 8 comments

Comments

@arlofaria
Copy link

arlofaria commented Jan 13, 2022

I think such a function would be helpful for anyone trying to speed up SRC by parallelizing its computation over multiple threads. You could split the input to apply SRC independently on each segment, but then it'd be good to know how much overlap is needed between adjacent segments so that you can stitch it together correctly -- ideally to get bitwise identical results compared to single-threaded processing. FWIW: my goal would be to make SRC as fast as VAD, which can be thousands of times faster than real-time -- but it operates internally on 8kHz audio.

_Originally posted by @arlofaria in #6 (comment)

@arlofaria
Copy link
Author

This would require multi-threading, which might be complicated to introduce in this codebase.

@ss3git
Copy link

ss3git commented Sep 17, 2023

I've implemented a multi-thread version for my personal needs.
Sharing it for those who might be interested.

ss3git/libsamplerate@master...ss3git:libsamplerate:MultiThreading

@evpobr
Copy link
Member

evpobr commented Sep 20, 2023

Hi @ss3git . Interesting idea. Pull request?

@ss3git
Copy link

ss3git commented Sep 20, 2023

Hi, I hope I sent the request correctly.
I'm actually not so familiar with github yet.

@luzpaz
Copy link
Contributor

luzpaz commented Nov 3, 2023

This looks awesome. What's type of speed boost does this actually give ?

@ss3git
Copy link

ss3git commented Nov 3, 2023

If asking about my implementation, the sinc converter uses multiple threads during its conversion process so is expected to run faster (give more throughput) on multi-core CPUs unless input data blocks to src_process() are very small.

Here is an example comparison of the benchmark (multichan_throughput_test) results on an 8 core cpu.

single-thread:
    Converter                        Channels    Duration      Throughput
    ---------------------------------------------------------------------
    Fastest Sinc Interpolator           1          5.03         2914383
    Fastest Sinc Interpolator           2          5.00         2673097
    Fastest Sinc Interpolator           3          5.02         1259082
    Fastest Sinc Interpolator           4          5.01         2072984
    Fastest Sinc Interpolator           5          5.01          974272

    Medium Sinc Interpolator            1          5.06         1255958
    Medium Sinc Interpolator            2          5.03         1186395
    Medium Sinc Interpolator            3          5.03          576003
    Medium Sinc Interpolator            4          5.02          911986
    Medium Sinc Interpolator            5          5.02          433959

    Best Sinc Interpolator              1          5.27          369097
    Best Sinc Interpolator              2          5.13          341291
    Best Sinc Interpolator              3          5.18          175364
    Best Sinc Interpolator              4          5.11          247623
    Best Sinc Interpolator              5          5.17          130465
    Best Sinc Interpolator              6          5.02          215596
    Best Sinc Interpolator              7          5.09           94618
    Best Sinc Interpolator              8          5.12           88757
    Best Sinc Interpolator              9          5.00           83624
    Best Sinc Interpolator             10          5.00           77856

multi-threaded:
    Converter                        Channels    Duration      Throughput
    ---------------------------------------------------------------------
    Fastest Sinc Interpolator           1          5.00        10093617
    Fastest Sinc Interpolator           2          5.00         8906060
    Fastest Sinc Interpolator           3          5.00         7526097
    Fastest Sinc Interpolator           4          5.00         6939962
    Fastest Sinc Interpolator           5          5.00         5974970

    Medium Sinc Interpolator            1          5.01         6443665
    Medium Sinc Interpolator            2          5.00         5668893
    Medium Sinc Interpolator            3          5.01         4664263
    Medium Sinc Interpolator            4          5.00         4190524
    Medium Sinc Interpolator            5          5.01         3509137

    Best Sinc Interpolator              1          5.01         2407802
    Best Sinc Interpolator              2          5.01         2032235
    Best Sinc Interpolator              3          5.02         1671403
    Best Sinc Interpolator              4          5.01         1471135
    Best Sinc Interpolator              5          5.02         1252135
    Best Sinc Interpolator              6          5.01         1112856
    Best Sinc Interpolator              7          5.01          906998
    Best Sinc Interpolator              8          5.02          811740
    Best Sinc Interpolator              9          5.00          662631
    Best Sinc Interpolator             10          5.01          602992

@ss3git
Copy link

ss3git commented Nov 17, 2023

FYI: updated results of multichan_throughput_test taken with today's version.
(on the assumption that the code under review #201 is correctly implemented.)

 FreeBSD clang version 14.0.5                                                                                          
 Target: x86_64-unknown-freebsd13.2                                                                                    
 Thread model: posix                                                                                                   
                                                                                                                       
 CPU name : Intel(R) Atom(TM) CPU C3708 @ 1.70GHz                                                          8-core CPU  
                                                                                                                       
 SRC_RATIO : 0.99                               Throughput (times faster than realtime if input is 44.1k)              
                                                                                                                       
 Converter                     Ch      MT(MT_COEFFS_CACHING 1)    MT(MT_COEFFS_CACHING 0)          SingleThread        
 --------------------------- ------- -------------------------- --------------------------  -------------------------- 
 Fastest Sinc Interpolator      1         14953596 (x 342.51)         14955917 (x 342.56)          2928023 (x  67.07)  
 Fastest Sinc Interpolator      2         13608723 (x 311.70)         13305314 (x 304.76)          2681882 (x  61.43)  
 Fastest Sinc Interpolator      3         11343683 (x 259.82)         11213093 (x 256.83)          1248513 (x  28.60)  
 Fastest Sinc Interpolator      4         10248991 (x 234.75)         10110782 (x 231.59)          2069735 (x  47.41)  
 Fastest Sinc Interpolator      5          8821366 (x 202.05)          8700990 (x 199.29)           958725 (x  21.96)  
                                                                                                                       
 Medium Sinc Interpolator       1          7821661 (x 179.15)          7782627 (x 178.26)          1257899 (x  28.81)  
 Medium Sinc Interpolator       2          7094296 (x 162.49)          7022790 (x 160.86)          1190091 (x  27.26)  
 Medium Sinc Interpolator       3          5969939 (x 136.74)          5813803 (x 133.16)           568288 (x  13.02)  
 Medium Sinc Interpolator       4          5402227 (x 123.74)          5349935 (x 122.54)           910567 (x  20.86)  
 Medium Sinc Interpolator       5          4711434 (x 107.91)          4644047 (x 106.37)           428793 (x   9.82)  
                                                                                                                       
 Best Sinc Interpolator         1          2497397 (x  57.20)          2531469 (x  57.98)           330662 (x   7.57)  
 Best Sinc Interpolator         2          2382031 (x  54.56)          2371162 (x  54.31)           308536 (x   7.07)  
 Best Sinc Interpolator         3          2057456 (x  47.13)          2001742 (x  45.85)           163853 (x   3.75)  
 Best Sinc Interpolator         4          1895055 (x  43.41)          1892653 (x  43.35)           229276 (x   5.25)  
 Best Sinc Interpolator         5          1613921 (x  36.97)          1628117 (x  37.29)           123603 (x   2.83)  
 Best Sinc Interpolator         6          1569066 (x  35.94)          1566992 (x  35.89)           198040 (x   4.54)  
 Best Sinc Interpolator         7          1296081 (x  29.69)          1402193 (x  32.12)            90979 (x   2.08)  
 Best Sinc Interpolator         8          1187603 (x  27.20)          1253861 (x  28.72)            84939 (x   1.95)  
 Best Sinc Interpolator         9          1071478 (x  24.54)          1097344 (x  25.13)            80740 (x   1.85)  
 Best Sinc Interpolator        10          1003206 (x  22.98)          1006017 (x  23.04)            75260 (x   1.72)  
                                                                                                                       
                                                                                                                       
 SRC_RATIO : 2.00                                                                                                      
                                                                                                                       
 Converter                     Ch       MT(MT_COEFFS_CACHING 1)    MT(MT_COEFFS_CACHING 0)           SingleThread      
 --------------------------- ------- -------------------------- --------------------------  -------------------------- 
 Fastest Sinc Interpolator      1         23360228 (x 264.86)         22736188 (x 257.78)          2946999 (x  33.41)  
 Fastest Sinc Interpolator      2         21372339 (x 242.32)         20217167 (x 229.22)          2709364 (x  30.72)  
 Fastest Sinc Interpolator      3         17020458 (x 192.98)         16171442 (x 183.35)          1246585 (x  14.13)  
 Fastest Sinc Interpolator      4         16069963 (x 182.20)         14747527 (x 167.21)          2067706 (x  23.44)  
 Fastest Sinc Interpolator      5         13365211 (x 151.53)         12872925 (x 145.95)           970611 (x  11.00)  
                                                                                                                       
 Medium Sinc Interpolator       1         16412307 (x 186.08)          8881813 (x 100.70)          1317847 (x  14.94)  
 Medium Sinc Interpolator       2         14954823 (x 169.56)          8230452 (x  93.32)          1246604 (x  14.13)  
 Medium Sinc Interpolator       3         10997127 (x 124.68)          6968913 (x  79.01)           581464 (x   6.59)  
 Medium Sinc Interpolator       4         10064307 (x 114.11)          6388635 (x  72.43)           945012 (x  10.71)  
 Medium Sinc Interpolator       5          8042831 (x  91.19)          5489548 (x  62.24)           439708 (x   4.99)  
                                                                                                                       
 Best Sinc Interpolator         1          8497627 (x  96.34)          2703943 (x  30.66)           444756 (x   5.04)  
 Best Sinc Interpolator         2          7270660 (x  82.43)          2578758 (x  29.24)           407956 (x   4.63)  
 Best Sinc Interpolator         3          4687158 (x  53.14)          2172766 (x  24.63)           194233 (x   2.20)  
 Best Sinc Interpolator         4          4306196 (x  48.82)          2080988 (x  23.59)           300526 (x   3.41)  
 Best Sinc Interpolator         5          3266027 (x  37.03)          1753489 (x  19.88)           143217 (x   1.62)  
 Best Sinc Interpolator         6          2881557 (x  32.67)          1756467 (x  19.91)           252612 (x   2.86)  
 Best Sinc Interpolator         7          2686547 (x  30.46)          1558904 (x  17.67)           106518 (x   1.21)  
 Best Sinc Interpolator         8          2502733 (x  28.38)          1411842 (x  16.01)            97390 (x   1.10)  
 Best Sinc Interpolator         9          2096153 (x  23.77)          1251207 (x  14.19)            89430 (x   1.01)  
 Best Sinc Interpolator        10          2062706 (x  23.39)          1166248 (x  13.22)            83105 (x   0.94)  
                                                                                                                       
                                                                                                                       
 SRC_RATIO : 7.00                                                                                                      
                                                                                                                       
 Converter                     Ch       MT(MT_COEFFS_CACHING 1)    MT(MT_COEFFS_CACHING 0)           SingleThread      
 --------------------------- ------- -------------------------- --------------------------  -------------------------- 
 Fastest Sinc Interpolator      1         25086964 (x  81.27)         15897070 (x  51.50)          2913253 (x   9.44)  
 Fastest Sinc Interpolator      2         23432790 (x  75.91)         16345814 (x  52.95)          2691671 (x   8.72)  
 Fastest Sinc Interpolator      3         18483233 (x  59.87)         14135872 (x  45.79)          1258286 (x   4.08)  
 Fastest Sinc Interpolator      4         18131462 (x  58.73)         13189839 (x  42.73)          2074321 (x   6.72)  
 Fastest Sinc Interpolator      5         15203693 (x  49.25)         11550759 (x  37.42)           972122 (x   3.15)  
                                                                                                                       
 Medium Sinc Interpolator       1         17145587 (x  55.54)          9291460 (x  30.10)          1282661 (x   4.16)  
 Medium Sinc Interpolator       2         15934270 (x  51.62)          8707996 (x  28.21)          1202105 (x   3.89)  
 Medium Sinc Interpolator       3         11709352 (x  37.93)          7343613 (x  23.79)           571358 (x   1.85)  
 Medium Sinc Interpolator       4         10722703 (x  34.74)          6773466 (x  21.94)           917705 (x   2.97)  
 Medium Sinc Interpolator       5          8683235 (x  28.13)          5835175 (x  18.90)           432289 (x   1.40)  
                                                                                                                       
 Best Sinc Interpolator         1          8592448 (x  27.83)          2744883 (x   8.89)           389036 (x   1.26)  
 Best Sinc Interpolator         2          7253302 (x  23.50)          2599250 (x   8.42)           359145 (x   1.16)  
 Best Sinc Interpolator         3          4759826 (x  15.42)          2199713 (x   7.13)           179872 (x   0.58)  
 Best Sinc Interpolator         4          4370238 (x  14.16)          2093183 (x   6.78)           262926 (x   0.85)  
 Best Sinc Interpolator         5          3329585 (x  10.79)          1798441 (x   5.83)           135256 (x   0.44)  
 Best Sinc Interpolator         6          3346581 (x  10.84)          1751943 (x   5.68)           226480 (x   0.73)  
 Best Sinc Interpolator         7          2753861 (x   8.92)          1561983 (x   5.06)            99273 (x   0.32)  
 Best Sinc Interpolator         8          2561411 (x   8.30)          1416038 (x   4.59)            92115 (x   0.30)  
 Best Sinc Interpolator         9          2133711 (x   6.91)          1243797 (x   4.03)            86569 (x   0.28)  
 Best Sinc Interpolator        10          2103193 (x   6.81)          1150882 (x   3.73)            80368 (x   0.26)  
                                                                                                                       
                                                                                                                       
 SRC_RATIO : 0.25                                                                                                      
                                                                                                                       
 Converter                     Ch       MT(MT_COEFFS_CACHING 1)    MT(MT_COEFFS_CACHING 0)           SingleThread      
 --------------------------- ------- -------------------------- --------------------------  -------------------------- 
 Fastest Sinc Interpolator      1          8450528 (x 766.49)          8379715 (x 760.06)           844095 (x  76.56)  
 Fastest Sinc Interpolator      2          6691200 (x 606.91)          6595874 (x 598.27)           776601 (x  70.44)  
 Fastest Sinc Interpolator      3          4794910 (x 434.91)          4741967 (x 430.11)           357715 (x  32.45)  
 Fastest Sinc Interpolator      4          3944899 (x 357.81)          3924020 (x 355.92)           590539 (x  53.56)  
 Fastest Sinc Interpolator      5          3185471 (x 288.93)          3148933 (x 285.62)           267403 (x  24.25)  
                                                                                                                       
 Medium Sinc Interpolator       1          2545789 (x 230.91)          2566129 (x 232.76)           367001 (x  33.29)  
 Medium Sinc Interpolator       2          2244949 (x 203.62)          2258829 (x 204.88)           344064 (x  31.21)  
 Medium Sinc Interpolator       3          1807346 (x 163.93)          1810465 (x 164.21)           154623 (x  14.02)  
 Medium Sinc Interpolator       4          1612026 (x 146.22)          1610174 (x 146.05)           252313 (x  22.89)  
 Medium Sinc Interpolator       5          1360607 (x 123.41)          1358991 (x 123.26)           114279 (x  10.37)  
                                                                                                                       
 Best Sinc Interpolator         1           701720 (x  63.65)           706311 (x  64.06)            99126 (x   8.99)  
 Best Sinc Interpolator         2           652858 (x  59.22)           660122 (x  59.88)            91180 (x   8.27)  
 Best Sinc Interpolator         3           563100 (x  51.07)           559525 (x  50.75)            46184 (x   4.19)  
 Best Sinc Interpolator         4           516150 (x  46.82)           517819 (x  46.97)            68173 (x   6.18)  
 Best Sinc Interpolator         5           438872 (x  39.81)           441352 (x  40.03)            34267 (x   3.11)  
 Best Sinc Interpolator         6           425251 (x  38.57)           424684 (x  38.52)            57094 (x   5.18)  
 Best Sinc Interpolator         7           375483 (x  34.06)           327954 (x  29.75)            25237 (x   2.29)  
 Best Sinc Interpolator         8           300457 (x  27.25)           333444 (x  30.24)            23463 (x   2.13)  
 Best Sinc Interpolator         9           293260 (x  26.60)           292853 (x  26.56)            21543 (x   1.95)  
 Best Sinc Interpolator        10           267652 (x  24.28)           269366 (x  24.43)            20681 (x   1.88)  

@ss3git
Copy link

ss3git commented Nov 18, 2023

FYI 2: results of multichan_throughput_test on another machine.

 Windows 10 22H2                                                                                                      
 Visual Studio 2022 (MSVC)                                                                                            
 Intel(R) Xeon(R) CPU E5-2667 v4 @ 3.20GHz                        8-core CPU x2 = 16 cores w/o HT, NUMA configuration 
                                                                                                                      
 set OMP_PROC_BIND=true                                                                                               
 MT: cmake . -DBUILD_MULTI_THREADING=1                                                                                
 ST: cmake . -DBUILD_MULTI_THREADING=0                                                                                
                                                                                                                      
                                                                                                                      
 SRC_RATIO : 0.99                               Throughput (times faster than realtime if input is 44.1k)             
                                                                                                                      
 Converter                     Ch      MT(MT_COEFFS_CACHING 1)    MT(MT_COEFFS_CACHING 0)          SingleThread       
 --------------------------- ------- -------------------------- --------------------------  ------------------------- 
 Fastest Sinc Interpolator      1         39595138 (x 906.92)         40381623 (x 924.93)          9788397 (x 224.20) 
 Fastest Sinc Interpolator      2         34322049 (x 786.14)         37532640 (x 859.68)          8294814 (x 189.99) 
 Fastest Sinc Interpolator      3         32959548 (x 754.93)         31871823 (x 730.02)          3757837 (x  86.07) 
 Fastest Sinc Interpolator      4         28697308 (x 657.31)         28723261 (x 657.90)          6021516 (x 137.92) 
 Fastest Sinc Interpolator      5         26907033 (x 616.30)         27742688 (x 635.44)          3304962 (x  75.70) 
                                                                                                                      
 Medium Sinc Interpolator       1         31098028 (x 712.29)         32096452 (x 735.16)          4694531 (x 107.53) 
 Medium Sinc Interpolator       2         27239124 (x 623.91)         27049967 (x 619.57)          3930216 (x  90.02) 
 Medium Sinc Interpolator       3         23037080 (x 527.66)         23547477 (x 539.35)          1882485 (x  43.12) 
 Medium Sinc Interpolator       4         20040521 (x 459.02)         20840098 (x 477.34)          2821238 (x  64.62) 
 Medium Sinc Interpolator       5         18752915 (x 429.53)         18261365 (x 418.27)          1474545 (x  33.77) 
                                                                                                                      
 Best Sinc Interpolator         1         13173179 (x 301.73)         14049233 (x 321.79)           888947 (x  20.36) 
 Best Sinc Interpolator         2         12166808 (x 278.68)         12610344 (x 288.84)           732030 (x  16.77) 
 Best Sinc Interpolator         3         10106721 (x 231.49)          9974372 (x 228.46)           424141 (x   9.71) 
 Best Sinc Interpolator         4          8337337 (x 190.96)          8269147 (x 189.40)           531926 (x  12.18) 
 Best Sinc Interpolator         5          6813632 (x 156.06)          7109426 (x 162.84)           320076 (x   7.33) 
 Best Sinc Interpolator         6          6029607 (x 138.11)          5878218 (x 134.64)           417476 (x   9.56) 
 Best Sinc Interpolator         7          5064976 (x 116.01)          4947400 (x 113.32)           259898 (x   5.95) 
 Best Sinc Interpolator         8          4189830 (x  95.97)          4343983 (x  99.50)           351089 (x   8.04) 
 Best Sinc Interpolator         9          3633851 (x  83.23)          3774632 (x  86.46)           284169 (x   6.51) 
 Best Sinc Interpolator        10          3226492 (x  73.90)          3223254 (x  73.83)           254683 (x   5.83) 
                                                                                                                      
                                                                                                                      
 SRC_RATIO : 2.00                                                                                                     
                                                                                                                      
 Converter                     Ch      MT(MT_COEFFS_CACHING 1)    MT(MT_COEFFS_CACHING 0)          SingleThread       
 --------------------------- ------- -------------------------- --------------------------  ------------------------- 
 Fastest Sinc Interpolator      1         47081062 (x 533.80)         50363931 (x 571.02)          9921784 (x 112.49) 
 Fastest Sinc Interpolator      2         44433408 (x 503.78)         45980057 (x 521.32)          8497586 (x  96.34) 
 Fastest Sinc Interpolator      3         38849148 (x 440.47)         38919052 (x 441.26)          4220750 (x  47.85) 
 Fastest Sinc Interpolator      4         34026291 (x 385.79)         35198899 (x 399.08)          6068633 (x  68.81) 
 Fastest Sinc Interpolator      5         33117386 (x 375.48)         32494874 (x 368.42)          3323935 (x  37.69) 
                                                                                                   
 Medium Sinc Interpolator       1         43437412 (x 492.49)         34889669 (x 395.57)          4787067 (x  54.28) 
 Medium Sinc Interpolator       2         37977070 (x 430.58)         32957940 (x 373.67)          4085361 (x  46.32) 
 Medium Sinc Interpolator       3         31771368 (x 360.22)         28561835 (x 323.83)          1883264 (x  21.35) 
 Medium Sinc Interpolator       4         27249868 (x 308.96)         24448255 (x 277.19)          2885150 (x  32.71) 
 Medium Sinc Interpolator       5         24541881 (x 278.25)         22900550 (x 259.64)          1506912 (x  17.09) 
                                                                                                   
 Best Sinc Interpolator         1         28172886 (x 319.42)         16387272 (x 185.80)          1516794 (x  17.20) 
 Best Sinc Interpolator         2         22089903 (x 250.45)         14412155 (x 163.40)          1220119 (x  13.83) 
 Best Sinc Interpolator         3         16637152 (x 188.63)         11736829 (x 133.07)           615111 (x   6.97) 
 Best Sinc Interpolator         4         12947324 (x 146.80)         10151988 (x 115.10)           860428 (x   9.76) 
 Best Sinc Interpolator         5         10999394 (x 124.71)          9012208 (x 102.18)           450790 (x   5.11) 
 Best Sinc Interpolator         6          9155592 (x 103.80)          7728492 (x  87.62)           654957 (x   7.43) 
 Best Sinc Interpolator         7          7586964 (x  86.02)          6655592 (x  75.46)           371950 (x   4.22) 
 Best Sinc Interpolator         8          6583734 (x  74.65)          5851194 (x  66.34)           471859 (x   5.35) 
 Best Sinc Interpolator         9          5820543 (x  65.99)          5063872 (x  57.41)           412105 (x   4.67) 
 Best Sinc Interpolator        10          4953455 (x  56.16)          4459838 (x  50.57)           366409 (x   4.15) 
                                                                                                                      
                                                                                                                      
 SRC_RATIO : 7.00                                                                                                     
                                                                                                                      
 Converter                     Ch      MT(MT_COEFFS_CACHING 1)    MT(MT_COEFFS_CACHING 0)          SingleThread       
 --------------------------- ------- -------------------------- --------------------------  ------------------------- 
 Fastest Sinc Interpolator      1         52292566 (x 169.40)         49453224 (x 160.20)          9856614 (x  31.93) 
 Fastest Sinc Interpolator      2         48539360 (x 157.24)         44249907 (x 143.34)          8409776 (x  27.24) 
 Fastest Sinc Interpolator      3         40492355 (x 131.17)         38307830 (x 124.09)          4118617 (x  13.34) 
 Fastest Sinc Interpolator      4         36267622 (x 117.49)         34917580 (x 113.11)          6040003 (x  19.57) 
 Fastest Sinc Interpolator      5         35367928 (x 114.57)         32243220 (x 104.45)          3316638 (x  10.74) 
                                                                                                   
 Medium Sinc Interpolator       1         43463475 (x 140.80)         36797658 (x 119.20)          4771020 (x  15.46) 
 Medium Sinc Interpolator       2         38448835 (x 124.55)         33187430 (x 107.51)          3986881 (x  12.92) 
 Medium Sinc Interpolator       3         33233085 (x 107.65)         28387470 (x  91.96)          1874309 (x   6.07) 
 Medium Sinc Interpolator       4         27459584 (x  88.95)         23766954 (x  76.99)          2835189 (x   9.18) 
 Medium Sinc Interpolator       5         23707941 (x  76.80)         22398767 (x  72.56)          1508417 (x   4.89) 
                                                                                                   
 Best Sinc Interpolator         1         27922212 (x  90.45)         16524537 (x  53.53)          1402395 (x   4.54) 
 Best Sinc Interpolator         2         20199182 (x  65.43)         14074317 (x  45.59)          1115616 (x   3.61) 
 Best Sinc Interpolator         3         15093399 (x  48.89)         11889402 (x  38.51)           589591 (x   1.91) 
 Best Sinc Interpolator         4         11985896 (x  38.83)         10169153 (x  32.94)           785018 (x   2.54) 
 Best Sinc Interpolator         5          9722858 (x  31.50)          8624474 (x  27.94)           438291 (x   1.42) 
 Best Sinc Interpolator         6          7904728 (x  25.61)          7567108 (x  24.51)           609587 (x   1.97) 
 Best Sinc Interpolator         7          6717007 (x  21.76)          6618335 (x  21.44)           352020 (x   1.14) 
 Best Sinc Interpolator         8          5834589 (x  18.90)          5859612 (x  18.98)           483515 (x   1.57) 
 Best Sinc Interpolator         9          5070880 (x  16.43)          4947631 (x  16.03)           393921 (x   1.28) 
 Best Sinc Interpolator        10          4414437 (x  14.30)          4589021 (x  14.87)           368407 (x   1.19) 
                                                                                                                      
                                                                                                                      
 SRC_RATIO : 0.25                                                                                                     
                                                                                                                      
 Converter                     Ch      MT(MT_COEFFS_CACHING 1)    MT(MT_COEFFS_CACHING 0)          SingleThread       
 --------------------------- ------- -------------------------- --------------------------  ------------------------- 
 Fastest Sinc Interpolator      1         21996035 (x1995.11)         28096217 (x2548.41)          3068115 (x 278.29) 
 Fastest Sinc Interpolator      2         20082767 (x1821.57)         21761228 (x1973.81)          2562659 (x 232.44) 
 Fastest Sinc Interpolator      3         15792473 (x1432.42)         17817597 (x1616.11)          1170477 (x 106.17) 
 Fastest Sinc Interpolator      4         13023641 (x1181.28)         14996275 (x1360.21)          1781154 (x 161.56) 
 Fastest Sinc Interpolator      5         10996301 (x 997.40)         12292682 (x1114.98)           916249 (x  83.11) 
                                                                                                                      
 Medium Sinc Interpolator       1         12943360 (x1174.00)         14153837 (x1283.79)          1392852 (x 126.34) 
 Medium Sinc Interpolator       2         10649600 (x 965.95)         11881676 (x1077.70)          1143374 (x 103.71) 
 Medium Sinc Interpolator       3          8605139 (x 780.51)          9195326 (x 834.04)           507793 (x  46.06) 
 Medium Sinc Interpolator       4          7530086 (x 683.00)          7829913 (x 710.20)           778321 (x  70.60) 
 Medium Sinc Interpolator       5          6632648 (x 601.60)          6921024 (x 627.76)           396300 (x  35.95) 
                                                                                                   
 Best Sinc Interpolator         1          4630616 (x 420.01)          4596949 (x 416.96)           355611 (x  32.25) 
 Best Sinc Interpolator         2          4016553 (x 364.31)          3927312 (x 356.22)           287553 (x  26.08) 
 Best Sinc Interpolator         3          3014145 (x 273.39)          3145824 (x 285.34)           148463 (x  13.47) 
 Best Sinc Interpolator         4          2479545 (x 224.90)          2483814 (x 225.29)           208962 (x  18.95) 
 Best Sinc Interpolator         5          2037886 (x 184.84)          2019538 (x 183.18)           109712 (x   9.95) 
 Best Sinc Interpolator         6          1673556 (x 151.80)          1703462 (x 154.51)           158918 (x  14.41) 
 Best Sinc Interpolator         7          1434620 (x 130.12)          1409353 (x 127.83)            89947 (x   8.16) 
 Best Sinc Interpolator         8          1192516 (x 108.16)          1120217 (x 101.61)           121429 (x  11.01) 
 Best Sinc Interpolator         9           986119 (x  89.44)           992536 (x  90.03)            96541 (x   8.76) 
 Best Sinc Interpolator        10           848743 (x  76.98)           874609 (x  79.33)            90737 (x   8.23) 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants