HiPE compilation gives NINE times speed increase!

Peter-Henry Mander erlang@REDACTED
Mon Jan 17 11:22:04 CET 2005


Thanks Matthias,

Scott has kindly run the tests as well, and the emerging picture isn't
so much how much more efficient the HiPE native compiled code is, but
rather why is the non-native compilation producing memory-hungry
inefficient VM code?

Is it because the code I wrote is inefficient, and the HiPE compiler
somehow fixes the problem?

Pete.

On Mon, 17 Jan 2005 10:26:37 +0100
Matthias Lang <matthias@REDACTED> wrote:

> Peter-Henry Mander writes:
> 
>  > Can you all please try this code on other platforms to
>  > see if the result is consistent on every one?
> 
> I have a feeling at least part of your result is due to the test's
> enormous appetite for memory. I haven't investigated _why_ it wants
> more than 200MB, but I can see that on a 128M machine the test spends
> a lot of its time in the first half swapping. 
> 
> Anyway, some results:
> 
> Machine: antilipe (AMD Sempron 2600+, 512MB of RAM)
> Erlang: R10B-1a
> 
> 3> test:test().
> TimeScan 3460391  TimeParse 96369  Size 4063232 
> TimeScan 3473355  TimeParse 96250  Size 4063232 
> TimeScan 3493909  TimeParse 96484  Size 4063232 
> TimeScan 3488711  TimeParse 95609  Size 4063232 
> TimeScan 3439052  TimeParse 95309  Size 4063232 
> List=[{token,3460391,96369,4063232},
>       {token,3473355,96250,4063232},
>       {token,3493909,96484,4063232},
>       {token,3488711,95609,4063232},
>       {token,3439052,95309,4063232}]
>           token:    3471083 (  0% Std DV8) ScanTime       96004 (  0% Std DV8) ParseTime     3567087 TotalTime 
> TimeScan 834282  TimeParse 92701  Size 4063232 
> TimeScan 528545  TimeParse 90075  Size 4063232 
> TimeScan 520973  TimeParse 90476  Size 4063232 
> TimeScan 520780  TimeParse 90155  Size 4063232 
> TimeScan 521579  TimeParse 90248  Size 4063232 
> List=[{token,834282,92701,4063232},
>       {token,528545,90075,4063232},
>       {token,520973,90476,4063232},
>       {token,520780,90155,4063232},
>       {token,521579,90248,4063232}]
>           token:     585231 ( 23% Std DV8) ScanTime       90731 (  1% Std DV8) ParseTime      675962 TotalTime 
>           token:    5.93113 ScanTimeMult     1.05812 ParseTimeMult  
> [{token,5.93113,1.05812}]
> 
> ----------------------------------------------------------------------
> Machine: antilipe (AMD Sempron 2600+, 512MB of RAM)
> Erlang: R10B-2
> 
> 3> test:test().
> TimeScan 3571545  TimeParse 103291  Size 4063232 
> TimeScan 3737924  TimeParse 96995  Size 4063232 
> TimeScan 3394747  TimeParse 97837  Size 4063232 
> TimeScan 3390644  TimeParse 96918  Size 4063232 
> TimeScan 3380244  TimeParse 96984  Size 4063232 
> List=[{token,3571545,103291,4063232},
>       {token,3737924,96995,4063232},
>       {token,3394747,97837,4063232},
>       {token,3390644,96918,4063232},
>       {token,3380244,96984,4063232}]
>           token:    3495020 (  4% Std DV8) ScanTime       98405 (  2% Std DV8) ParseTime     3593425 TotalTime 
> TimeScan 833296  TimeParse 147895  Size 4063232 
> TimeScan 556451  TimeParse 66809  Size 4063232 
> TimeScan 555243  TimeParse 66738  Size 4063232 
> TimeScan 556225  TimeParse 92473  Size 4063232 
> TimeScan 556572  TimeParse 92304  Size 4063232 
> List=[{token,833296,147895,4063232},
>       {token,556451,66809,4063232},
>       {token,555243,66738,4063232},
>       {token,556225,92473,4063232},
>       {token,556572,92304,4063232}]
>           token:     611557 ( 20% Std DV8) ScanTime       93243 ( 35% Std DV8) ParseTime      704800 TotalTime 
>           token:    5.71495 ScanTimeMult     1.05536 ParseTimeMult  
> [{token,5.71495,1.05536}]
> 
> ----------------------------------------------------------------------
> Machine: cors (Pentium II, 448MHz, 128MB of RAM)
> Erlang: R10B-0
> 
> Hipe crashed while compiling
> 
> ----------------------------------------------------------------------
> Machine: cors (Pentium II, 448MHz, 128MB of RAM)
> Erlang: R10B-2
> 
> 3> test:test().
> TimeScan 36997097  TimeParse 565284  Size 4063232 
> TimeScan 32325258  TimeParse 576348  Size 4063232 
> TimeScan 38403200  TimeParse 555851  Size 4063232 
> TimeScan 29010239  TimeParse 561904  Size 4063232 
> TimeScan 38282352  TimeParse 650434  Size 4063232 
> List=[{token,36997097,565284,4063232},
>       {token,32325258,576348,4063232},
>       {token,38403200,555851,4063232},
>       {token,29010239,561904,4063232},
>       {token,38282352,650434,4063232}]
>           token:   35003629 ( 11% Std DV8) ScanTime      581964 (  6% Std DV8) P
> arseTime    35585593 TotalTime 
> TimeScan 3977486  TimeParse 1659904  Size 4063232 
> TimeScan 2123597  TimeParse 340800  Size 4063232 
> TimeScan 1815657  TimeParse 248477  Size 4063232 
> TimeScan 1818335  TimeParse 249664  Size 4063232 
> TimeScan 1812387  TimeParse 246169  Size 4063232 
> List=[{token,3977486,1659904,4063232},
>       {token,2123597,340800,4063232},
>       {token,1815657,248477,4063232},
>       {token,1818335,249664,4063232},
>       {token,1812387,246169,4063232}]
>           token:    2309492 ( 40% Std DV8) ScanTime      549002 (113% Std DV8) P
> arseTime     2858494 TotalTime 
>           token:    15.1564 ScanTimeMult     1.06004 ParseTimeMult  
> [{token,15.1564,1.06004}]
> 
> Matt


-- 
"The Tao of Programming
 flows far away 
 and returns 
 on the wind of morning."




More information about the erlang-questions mailing list