real case test MM parallel 4x scalable (i7 6700)

real case test MM parallel 4x scalable (i7 6700)
(on the newer processors will be linear)

I did a small test with real code scenario,
look at parallel zlib with my patch, zcompress loop 1000 of a 1100KB text file:

uses System.Zlib;

threadvar
INS: TMemoryStream;
OUTS: pointer;
SizeIn: integer;
SizeOUT: integer;

procedure TForm.CompressClick(Sender: TObject);
var
Count: integer;
begin
Count := GetTickCount;
TParallel.For(1,1000,procedure(I:integer)
begin
INS := TMemoryStream.Create;
INS.LoadFromFile('c:\teststream.txt');
SizeIn := INS.Size;
GetMem(OUTS, SizeIn);
SizeOUT := SizeIn;
ZCompress(INS.Memory, SizeIn, OUTS, SizeOUT, zcFastest);
INS.Free;
FreeMem(OUTS);
end);
ShowMessage(IntToStr(GetTickCount - Count));
end;

- fastmm4 900-1000msec
- brainMM 563msec
- msheap 532msec
- my patch Intel IPP + TTB 281 msec

www.dellapasqua.com
www.dellapasqua.com/intelTBB.rar (put a teststream.txt file on c:\ and run files)

http://www.dellapasqua.com/intelTBB.rar

Comments

  1. The results you are posting are amazing. For people who develop back end services like we do, this is beautiful.

    ReplyDelete
  2. well check my page, zlib, mm, rtl all simd enabled. Thanks for your words.
    Consider I need to a function wrapper for ippsFind because you need to use index[1] to the raw string, so for example POS returns 10 and ippsFind returns 9. Next week I'll do the little wrapper for rawstring, unicodestring, stringreplace, trim, etc.

    ReplyDelete
  3. hello, I have removed my pages because I'm scared of license violations

    ReplyDelete

Post a Comment