Watch, Follow, &
Connect with Us

Please visit our new home
community.embarcadero.com.


Welcome, Guest
Guest Settings
Help

Thread: My Delphi 64bit RTL patch using INTEL libs



Permlink Replies: 7 - Last Post: Aug 18, 2017 2:02 AM Last Post By: Alexandre Machado Threads: [ Previous | Next ]
Roberto Della P...

Posts: 83
Registered: 4/8/12
My Delphi 64bit RTL patch using INTEL libs
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 20, 2017 5:14 AM
Mem manager multithreaded from 70seconds to 4seconds

check www.dellapasqua.com

please feel free to test it or join me to enlarge it with many functions from IPP Intel

Best regards

Roberto Della Pasqua
Roberto Della P...

Posts: 83
Registered: 4/8/12
Re: My Delphi 64bit RTL patch using INTEL libs
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 20, 2017 11:46 AM   in response to: Roberto Della P... in response to: Roberto Della P...
Roberto Della Pasqua wrote:
Mem manager multithreaded from 70seconds to 4seconds

check www.dellapasqua.com

please feel free to test it or join me to enlarge it with many functions from IPP Intel

Best regards

Roberto Della Pasqua

errata corrige:
using FastMM4 NoThreadContention 22098 msec
using ScaleMM2 22393 msec
using Windows 10 / Windows 2016 Heap 5102 msec
using Intel TBB + Intel IPP 3975 msec
Mida Converter

Posts: 70
Registered: 6/2/12
Re: My Delphi 64bit RTL patch using INTEL libs
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 24, 2017 2:15 AM   in response to: Roberto Della P... in response to: Roberto Della P...
Thank you for your work :)
Alexandre Machado

Posts: 1,683
Registered: 8/10/13
Re: My Delphi 64bit RTL patch using INTEL libs
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 27, 2017 3:04 PM   in response to: Roberto Della P... in response to: Roberto Della P...
Hi Roberto,

I've done some testing with your Intel TBB. My stress test application is simple: a variable number of threads continuously create and destroy certain classes of objects at runtime, in a loop. It also involves string allocation. It simulates one specific scenario I have. For instance, when using 64 threads in a 8 core CPU, TBB benchmark runs 3x faster than the same benchmark using latest FastMM 4.99x.

What do you think about creating a repository/project for it on github or bitbucket (I personally prefer the later) with a proper OSS license, so users know how they can/can't use the source code?
I'm willing to help, adding support and testing for 32-bit. Although you might not need 32 bit support, some people still do.
Roberto Della P...

Posts: 83
Registered: 4/8/12
Re: My Delphi 64bit RTL patch using INTEL libs
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 28, 2017 1:01 AM   in response to: Alexandre Machado in response to: Alexandre Machado
Alexandre Machado wrote:
Hi Roberto,

I've done some testing with your Intel TBB. My stress test application is simple: a variable number of threads continuously create and destroy certain classes of objects at runtime, in a loop. It also involves string allocation. It simulates one specific scenario I have. For instance, when using 64 threads in a 8 core CPU, TBB benchmark runs 3x faster than the same benchmark using latest FastMM 4.99x.

What do you think about creating a repository/project for it on github or bitbucket (I personally prefer the later) with a proper OSS license, so users know how they can/can't use the source code?
I'm willing to help, adding support and testing for 32-bit. Although you might not need 32 bit support, some people still do.

sure, give me some days, I'm so busy;
we can patch also some low level common float routines as function Int,Frac, Exp,Cos,Sin, Ln,ArcTan, trunc. Round, Sqrt, but those are really well optimized with x64 sse functions, so I don't know I we will have a big speedup;
about strings management, intel PPI use C strings null end, so probably we cannot have any benefit using those calls (we can try using inline functions adding/removing terminator char with common copystring, pos, we can do a try)...
Roberto Della P...

Posts: 83
Registered: 4/8/12
Re: My Delphi 64bit RTL patch using INTEL libs
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 28, 2017 1:32 AM   in response to: Roberto Della P... in response to: Roberto Della P...
Roberto Della Pasqua wrote:
Alexandre Machado wrote:
Hi Roberto,

I've done some testing with your Intel TBB. My stress test application is simple: a variable number of threads continuously create and destroy certain classes of objects at runtime, in a loop. It also involves string allocation. It simulates one specific scenario I have. For instance, when using 64 threads in a 8 core CPU, TBB benchmark runs 3x faster than the same benchmark using latest FastMM 4.99x.

What do you think about creating a repository/project for it on github or bitbucket (I personally prefer the later) with a proper OSS license, so users know how they can/can't use the source code?
I'm willing to help, adding support and testing for 32-bit. Although you might not need 32 bit support, some people still do.

sure, give me some days, I'm so busy;
we can patch also some low level common float routines as function Int,Frac, Exp,Cos,Sin, Ln,ArcTan, trunc. Round, Sqrt, but those are really well optimized with x64 sse functions, so I don't know I we will have a big speedup;
about strings management, intel PPI use C strings null end, so probably we cannot have any benefit using those calls (we can try using inline functions adding/removing terminator char with common copystring, pos, we can do a try)...

well, should be cool to do a single LLVM5 clang static obj starting from the Intel sources (if license permits), we can also do a linux version, I have read tests where tbb is xx scalable than glibc malloc
Roberto Della P...

Posts: 83
Registered: 4/8/12
Re: My Delphi 64bit RTL patch using INTEL libs
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 28, 2017 7:24 AM   in response to: Roberto Della P... in response to: Roberto Della P...
Intel IPP string functions for do not consider zero as the end of the string, but require that the length of the string (number of elements) be specified explicitly.

So I'll do a try and we see the results.
Alexandre Machado

Posts: 1,683
Registered: 8/10/13
Re: My Delphi 64bit RTL patch using INTEL libs
Click to report abuse...   Click to reply to this thread Reply
  Posted: Aug 18, 2017 2:02 AM   in response to: Roberto Della P... in response to: Roberto Della P...
Roberto Della Pasqua wrote:
Intel IPP string functions for do not consider zero as the end of the string, but require that the length of the string (number of elements) be specified explicitly.

So I'll do a try and we see the results.

Where can I find your benchmark application which compares FastZLib using 3 different methods, LLVM x Delphi's? I'd like to use the same benchmark and compare the numbers.... Thanks
Legend
Helpful Answer (5 pts)
Correct Answer (10 pts)

Server Response from: ETNAJIVE02