Re: [MSEide-MSEgui-talk] fpcflop benchmark
Hello Martin. OK, I will (try to) be patient and wait for the first mselang release. Before that very expected moment I will do a break with Pascal. Thanks for all Martin. Fre;D -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
On Tuesday 27 June 2017 14:32:16 Fred van Stappen wrote: > > Other thing... > > In fpc, to initialize a variable: > > var > x : integer = -1 ; > y : integer = -1 ; > z: integer = -1 ; > > I would prefer: > > var > x, y, z : integer = -1 ; > MSElang probably will have no initializers for local variables. " var x, y, z : integer = -1 ; " actually is " var x, y, z : integer; begin x:= -1; y:= -1; z:= -1; " so I think it should be written in this style. Martin -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
>> Personally, I do not like ^, @ and friends. >> See that topic: >>http://forum.lazarus.freepascal.org/index.php/topic,18928.msg107215.html > For me reference and dereference operations are operations like addition and > substraction. For me > dest:= s1 + s1 - delta + p1^.a.b + p2^.r^; > is easier to read than > dest:= s1 plus s1 minus delta plus refptr(p1).a.b plus refptr(refptr(p2).r)); Huh, "minus" (in place of "-") and "plus" (in place of "+") was a joke. But, personally, I prefer : dest:= s1 + s1 - delta + refptr(p1).a.b + refptr(refptr(p2).r)); But is is question of taste (and if you have a no-latin keyboard) : to write ^ with my keyboard, I need to do shift and 2 times the "^" key, keeping the shift key down. ... Other thing... In fpc, to initialize a variable: var x : integer = -1 ; y : integer = -1 ; z: integer = -1 ; I would prefer: var x, y, z : integer = -1 ; Fre;D -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
> Personally, I do not like ^, @ and friends. > > See that topic: > http://forum.lazarus.freepascal.org/index.php/topic,18928.msg107215.html > For me reference and dereference operations are operations like addition and substraction. For me " dest:= s1 + s1 - delta + p1^.a.b + p2^.r^; " is easier to read than " dest:= s1 plus s1 minus delta plus refptr(p1).a.b plus refptr(refptr(p2).r)); " Martin -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
>> - Would it be possible to compile fpc-code with mselang (would be the >> fpc-syntax compatible) ? >Yes, as long you use the subset used in MSEide+MSEgui, especially no macros and no generics. Perfect. >> - Do you have plan to make work some (needed) features that do not work >> with fpc ? > Sure. Perfect. >> I will be happy if this (that does not work correctly with fpc) work with >> mselang :- {$I something.inc} and friends ---> the fpc compiler can >> not deal if >> something was changed in something.inc, need to re-build all. >Are you sure? I vaguely remember that I read somewhare that FPC tracks changed >include files. Huh, with last fpc commit it (still) does not work ok. If, for example, in your something.inc you add or change {$DEFINE something}, the fpc compiler does not see it. You must then re-build all. >> - {$UNITPATH ../../src} and friends ---> the fpc compiler can not deal >> if something was changed in UNITPATH, need to re-build all. >I don't know that option. Is it a good idea to define paths in source? I would really like it (if it works better than fpc). Huh, something else... Personally, I do not like ^, @ and friends. See that topic: http://forum.lazarus.freepascal.org/index.php/topic,18928.msg107215.html Thanks. Fre;D -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
On Sunday 25 June 2017 14:56:52 Fred van Stappen wrote: > > - Would it be possible to compile fpc-code with mselang (would be the > fpc-syntax compatible) ? > Yes, as long you use the subset used in MSEide+MSEgui, especially no macros and no generics. > > - Do you have plan to make work some (needed) features that do not work > with fpc ? > Sure. > I will be happy if this (that does not work correctly with fpc) work with > mselang : > > > > - {$I something.inc} and friends ---> the fpc compiler can not deal if > something was changed in something.inc, need to re-build all. > Are you sure? I vaguely remember that I read somewhare that FPC tracks changed include files. > - {$UNITPATH ../../src} and friends ---> the fpc compiler can not deal > if something was changed in UNITPATH, need to re-build all. > I don't know that option. Is it a good idea to define paths in source? Martin -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
Hello Martin. http://free-pascal-general.1045716.n5.nabble.com/Implementing-AggPas-with-PtcGraph-td5728957i80.html + https://gitlab.com/mseide-msegui/mselang/tree/master/mselang/benchmark/putimage = WoW. Huh. some questions... - Would it be possible to compile fpc-code with mselang (would be the fpc-syntax compatible) ? - Do you have plan to make work some (needed) features that do not work with fpc ? I will be happy if this (that does not work correctly with fpc) work with mselang : - {$I something.inc} and friends ---> the fpc compiler can not deal if something was changed in something.inc, need to re-build all. - {$UNITPATH ../../src} and friends ---> the fpc compiler can not deal if something was changed in UNITPATH, need to re-build all. Thanks. Fre;D -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
On Friday 26 May 2017 12:02:00 Fred van Stappen wrote: > Do you have a idea when it will be possible to compile a library that uses > those units ? : > > > ---> Classes, ctypes, Math, sysutils. dynlibs, Pipes, cthreads, unixtype. > Not in near future, it still is much work to do. > Martin -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
Hello Martin. The excellent result of float benchmark with mselang gives a big hope for all Pascal developers. Do you have a idea when it will be possible to compile a library that uses those units ? : ---> Classes, ctypes, Math, sysutils. dynlibs, Pipes, cthreads, unixtype. Thanks. Fre;D -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
On Thursday 25 May 2017 00:50:46 Jon Foster wrote: > > > Apple traded out GCC for CLang / LLVM some time ago. The only downside > I've heard about LLVM is that its slow. Like GCC & friends weren't. But I > think a lot GCC slowness is inherited from binutils and that's probably the > same for CLang/LLVM. I fear the slowness of LLVM - and it really slow - is also caused by the excessive use of "advanced C++ techniques". Martin -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
On 05/24/2017 01:27 PM, Fred van Stappen wrote: > So LLVM does something like what Java's compiler does. The kernel of FreeBSD is made by LLVM-clang compiler. (Even if the script to build the kernel needs 8 different compilers ! (that are in fact copy the same clang compiler with 8 different names !). Apple traded out GCC for CLang / LLVM some time ago. The only downside I've heard about LLVM is that its slow. Like GCC & friends weren't. But I think a lot GCC slowness is inherited from binutils and that's probably the same for CLang/LLVM. That's one of the reasons that FPC has been struggling to build internal replacements for the binutils suite. Still have to use binutils on many platforms. -- Sent from my Debian Linux workstation -- http://www.debian.org/intro/about Jon Foster JF Possibilities, Inc. j...@jfpossibilities.com -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
> So LLVM does something like what Java's compiler does. The kernel of FreeBSD is made by LLVM-clang compiler. (Even if the script to build the kernel needs 8 different compilers ! (that are in fact copy the same clang compiler with 8 different names !). Fre;D -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
On 05/24/2017 10:51 AM, Martin Schreiber wrote: > On Wednesday 24 May 2017 18:58:40 Graeme Geldenhuys wrote: >> On 2017-05-24 17:52, Martin Schreiber wrote: >>> which will be optimized ("opt") and compiled to machine code ("llc") or >>> runned by a just in time compiler or interpreter ("lli"). >> So LLVM does something like what Java's compiler does. I know nothing >> about LLVM. :) >> > There is also a Java Script backend for LLVM (LLVM bitcode -> Java Script). > The LLVM project looked very interesting. I've had an eye on it for a while. I was looking to implement my own language too. :-D -- Sent from my Debian Linux workstation -- http://www.debian.org/intro/about Jon Foster JF Possibilities, Inc. j...@jfpossibilities.com 541-410-2760 Making computers work for you! -- Sent from my Debian Linux workstation -- http://www.debian.org/intro/about Jon Foster JF Possibilities, Inc. j...@jfpossibilities.com -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
On Wednesday 24 May 2017 18:58:40 Graeme Geldenhuys wrote: > On 2017-05-24 17:52, Martin Schreiber wrote: > > which will be optimized ("opt") and compiled to machine code ("llc") or > > runned by a just in time compiler or interpreter ("lli"). > > So LLVM does something like what Java's compiler does. I know nothing > about LLVM. :) > There is also a Java Script backend for LLVM (LLVM bitcode -> Java Script). Martin -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
On 2017-05-24 17:52, Martin Schreiber wrote: > which will be optimized ("opt") and compiled to machine code ("llc") or runned > by a just in time compiler or interpreter ("lli"). So LLVM does something like what Java's compiler does. I know nothing about LLVM. :) Regards, Graeme -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
On Wednesday 24 May 2017 17:25:02 Jon Foster wrote: > > MSElang is using LLVM, right? Are you using an upstream provided x86 back > end or did you have to write that? MSElang produces LLVM bitcode http://llvm.org/docs/BitCodeFormat.html which will be optimized ("opt") and compiled to machine code ("llc") or runned by a just in time compiler or interpreter ("lli"). Martin -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
On 05/24/2017 06:32 AM, Graeme Geldenhuys wrote: > On 2017-05-24 14:15, Martin Schreiber wrote: > Bottom line FPC sucks for game development - unless you offload > pretty much everything onto a GPU - something I was hoping wouldn't be > needed for that project. > > FPC's saving grace is that most applications seem to be console, web or > desktop apps, so those inefficient binaries go unnoticed. Actually all you've done is proven that floating point is slow. FPC produces some pretty good code. I can still parse the entirety of the fpGUI "src" tree and build a fully completed model of the class hierarchy faster than the blink of an eye. All on my aging core 2 2GHz. In fact it happens so fast I have to go look to see if the tree was built, because otherwise I'm under the impression nothing happened. So its saving grace is that it does most everything else well. There is always room for improvement. -- Sent from my Debian Linux workstation -- http://www.debian.org/intro/about Jon Foster JF Possibilities, Inc. j...@jfpossibilities.com -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
On 2017-05-24 15:35, Jon Foster wrote: > Interesting! Only a 25% increase between your 3.2GHz and my 1.9GHz CPUs. No real surprise. For many many years now, GHz is not a reliable measuring stick to measure performance differences between CPUs. A 2Ghz Intel i7 could easily outperform a 2.5Ghz Intel i3 - depending on how you test. For the poor consumer this is all a bloody nightmare. Regards, Graeme -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
On 05/24/2017 07:31 AM, Martin Schreiber wrote: > On Wednesday 24 May 2017 15:15:15 Martin Schreiber wrote: >> On Wednesday 24 May 2017 07:47:09 Martin Schreiber wrote: So what's MSElang's frame rate and on what kind of machine/OS? >>> Not ready yet. >> Linux 32 bit >> Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz >> >> With round() operations >> https://gitlab.com/mseide-msegui/mselang/blob/master/mselang/benchmark/mcte >> st/mctest.pas >> >> FPC 3.0.2 >> -O- -> 8 FPS >> -O4 -CfSSE3 -CpCOREI -> access violation >> -O3 -CfSSE3 -CpCOREI -> access violation > -O1 -CpCOREI -CfSSE3 -> 12.5 FPS > Interesting! Only a 25% increase between your 3.2GHz and my 1.9GHz CPUs. -- Sent from my Debian Linux workstation -- http://www.debian.org/intro/about Jon Foster JF Possibilities, Inc. j...@jfpossibilities.com 541-410-2760 Making computers work for you! -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
On Wednesday 24 May 2017 15:15:15 Martin Schreiber wrote: > On Wednesday 24 May 2017 07:47:09 Martin Schreiber wrote: > > > So what's MSElang's frame rate and on what kind of machine/OS? > > > > Not ready yet. > > Linux 32 bit > Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz > > With round() operations > https://gitlab.com/mseide-msegui/mselang/blob/master/mselang/benchmark/mcte >st/mctest.pas > > FPC 3.0.2 > -O- -> 8 FPS > -O4 -CfSSE3 -CpCOREI -> access violation > -O3 -CfSSE3 -CpCOREI -> access violation -O1 -CpCOREI -CfSSE3 -> 12.5 FPS Martin -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
On 05/24/2017 06:15 AM, Martin Schreiber wrote: > On Wednesday 24 May 2017 07:47:09 Martin Schreiber wrote: > >>> So what's MSElang's frame rate and on what kind of machine/OS? >> Not ready yet. >> > Linux 32 bit > Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz > > With round() operations > https://gitlab.com/mseide-msegui/mselang/blob/master/mselang/benchmark/mctest/mctest.pas > > FPC 3.0.2 > -O- -> 8 FPS > -O4 -CfSSE3 -CpCOREI -> access violation > -O3 -CfSSE3 -CpCOREI -> access violation > -O4 -CpCOREI -> 8.2 FPS > > MSElang, LLVM 3.8.0 > No options -> 4.2 FPS > -O3 -> 5.9 FPS > -O3 -mcpu=corei7 -mattr=+sse3,+ssse3 -> 33.5 FPS > > With trunci32() operations > https://gitlab.com/mseide-msegui/mselang/blob/master/mselang/benchmark/mctest/mctest_trunc.pas > -O3 -> 8.1 > -O3 -mcpu=corei7 -mattr=+sse3,+ssse3 -> 41.5 FPS ROCK ON! Since a server crash got me up *WAY* early this morning I ended up with an hour of extra time so I went over Jonas' suggestions again. I made tweaks fixing integer types, using trunc() instead of round, ... The over all improvement is only +0.6%, as I predicted nowhere near the 10x+ needed to compete with the other languages. I'd also like to point out that most of these things deal with internals in the compiler, which is what the initial complaint was. I also tried the SSE3 flag, which for a brief period of time brought me up to 10fps on my 1.9GHz i3 notebook. That is just under a 3x improvement. But then it segfaulted. As Jonas pointed out -O1 is about as far as you can take it with -CfSSE3 due to bugs in FPC. Also Jonas pointed out that they don't have a floor() with a float output. Indeed I could not find any rounding mechanism, in the docs, that produced a float output. So tried substituting -frac(). It was actually marginally slower. :-) His item #4 about the time base is my doing. It was the method I substituted for the the SDL_GetTicks() time source, which is probably much faster than FPC's time(). I'm sure there is a much better system call for that. But the short of it is that its only happening once per render and its total contribution to the performance deficit is inconsequential. Your machine is closer to what Graeme's is/was than mine is and that 41.5FPS is *SWEET*! THX - Jon -- Sent from my Debian Linux laptop Jon Foster JF Possibilities, Inc. j...@jfpossibilities.com -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
On Wednesday 24 May 2017 15:32:05 Graeme Geldenhuys wrote: > On 2017-05-24 14:15, Martin Schreiber wrote: > > FPC 3.0.2 > > -O- -> 8 FPS > > -O4 -CfSSE3 -CpCOREI -> access violation > > -O3 -CfSSE3 -CpCOREI -> access violation > > -O4 -CpCOREI -> 8.2 FPS > > Bottom line FPC sucks for game development - unless you offload > pretty much everything onto a GPU - something I was hoping wouldn't be > needed for that project. > > FPC's saving grace is that most applications seem to be console, web or > desktop apps, so those inefficient binaries go unnoticed. > Maybe with working SSE3 on 64 bit it is not so bad. Without SSE3 FPC is faster than LLVM. Martin -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
On 2017-05-24 14:15, Martin Schreiber wrote: > FPC 3.0.2 > -O- -> 8 FPS > -O4 -CfSSE3 -CpCOREI -> access violation > -O3 -CfSSE3 -CpCOREI -> access violation > -O4 -CpCOREI -> 8.2 FPS Bottom line FPC sucks for game development - unless you offload pretty much everything onto a GPU - something I was hoping wouldn't be needed for that project. FPC's saving grace is that most applications seem to be console, web or desktop apps, so those inefficient binaries go unnoticed. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
On 2017-05-24 06:47, Martin Schreiber wrote: > That is wrong, the code is not identical. Please read the mail again, > especially about the differences of round(). There was so many iterations of that program, I lost track of which one I published. But I know for a fact I tried frac(), trunk() and round() in my tests, and they made little or no difference in the FPS count. Regards, Graeme -- fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
On Wednesday 24 May 2017 07:47:09 Martin Schreiber wrote: > > > So what's MSElang's frame rate and on what kind of machine/OS? > > Not ready yet. > Linux 32 bit Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz With round() operations https://gitlab.com/mseide-msegui/mselang/blob/master/mselang/benchmark/mctest/mctest.pas FPC 3.0.2 -O- -> 8 FPS -O4 -CfSSE3 -CpCOREI -> access violation -O3 -CfSSE3 -CpCOREI -> access violation -O4 -CpCOREI -> 8.2 FPS MSElang, LLVM 3.8.0 No options -> 4.2 FPS -O3 -> 5.9 FPS -O3 -mcpu=corei7 -mattr=+sse3,+ssse3 -> 33.5 FPS With trunci32() operations https://gitlab.com/mseide-msegui/mselang/blob/master/mselang/benchmark/mctest/mctest_trunc.pas -O3 -> 8.1 -O3 -mcpu=corei7 -mattr=+sse3,+ssse3 -> 41.5 FPS Martin -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk
Re: [MSEide-MSEgui-talk] fpcflop benchmark
On Wednesday 24 May 2017 04:46:04 Jon Foster wrote: > On 05/23/2017 10:45 AM, Martin Schreiber wrote: > > On Friday 19 May 2017 18:06:18 Jon Foster wrote: > >> On 05/07/2017 03:05 AM, Graeme Geldenhuys wrote: > >>> On 2017-05-07 08:20, Martin Schreiber wrote: > MSElang has been designed as a high performance language so it can't > be so simple. > >>> > >>> [...] > >>> Although many on the FPC mailing list seem content to come up with > >>> excuses or blame Graeme for poor design it seems to me the real > >>> questions is: Why is x/y, when both are declared as singles, so > >>> much slower in FPC then it is in language X. So I'd really like to see > >>> how MSElang scores in this arena. I've been contemplating some game > >>> scenarios and I've been keeping my eye out for an improved language. > >>> Maybe I should get on board with MSElang. > > > > Please read Jonas mail about the problems of the testcase: > > https://www.mail-archive.com/fpc-pascal%40lists.freepascal.org/msg46162.h > >tml > > Yes, I've read his post and he had an idea or two that might improve FPC's > performance somewhat. I think Graeme addressed him with a reply. The bottom > line was that the identical code runs amazingly faster in other languages. That is wrong, the code is not identical. Please read the mail again, especially about the differences of round(). [...] > Your image looks like its probably doing things right but the output is > scrambled. The x & y dimensions in the array that I substituted for the SDL > drawing surface are probably reversed. So it is better: " var screen: array [0..s_h-1, 0..s_w-1] of LongInt; texmap : array[0..16*16*16*3-1] of LongInt; map : array[0..64*64*64-1] of smallint; procedure plot(x,y,c : LongInt) {$ifdef FPC}inline{$endif}; begin screen[y, x] := c; end; " > So what's MSElang's frame rate and on what kind of machine/OS? > Not ready yet. Martin -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ mseide-msegui-talk mailing list mseide-msegui-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk