Re: [PHP-DEV] JIT for PHP project

2016-11-16 Thread S.A.N
> The project is in the very early development stage.
>
> Now, JIT passes almost all PHPT tests, makes 3 times speed-up on bench.php 
> and no significant difference on real-life apps (+/-5% depended on 
> opcache.jit setting.
>

Have you tried to measure in frameworks as PHP script daemon, such as
Amp, ReactPhp, etc...?
Perhaps there will be two-fold increase in performance.
If yes, then this is a good argument to implement in PHP 8, native
application  server, like Express in Node.js?

Thank.

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



RE: [PHP-DEV] JIT for PHP project

2016-10-26 Thread Anatol Belski
Hi Dmitry,

Thanks for the info. Probably I'm just too curious :) Please count on me
once it becomes relevant to hand out some part.

Regards

Anatol

> -Original Message-
> From: Dmitry Stogov [mailto:dmi...@zend.com]
> Sent: Wednesday, October 26, 2016 1:31 PM
> To: Anatol Belski <anatol@belski.net>; 'PHP internals list'
> <internals@lists.php.net>
> Cc: Zeev Suraski <z...@zend.com>; Xinchen Hui <xinche...@zend.com>
> Subject: Re: [PHP-DEV] JIT for PHP project
> 
> Hi Anatol,
> 
> 
> The project is in the very early development stage.
> 
> Now, JIT passes almost all PHPT tests, makes 3 times speed-up on bench.php
> and no significant difference on real-life apps (+/-5% depended on
opcache.jit
> setting.
> 
> We are hardly working, implementing new ideas...
> 
> 
> I think it's too early to port this to Windows. Once, we think, we are
ready, I'll
> ask your help.
> 
> I suppose we won't need ELF->COFF porting, because we construct ELF
objects
> just to debug JITed code in GDB and read PHP ELF object for simple symbol
> resolution in disassembler (most probably, both won't work on Windows
> anyway).
> 
> zend_jit_x86.dasc will have to be adopted to support Windows calling
> convention, of course.
> 
> 
> Thanks. Dmitry.
> 
> 
> 
> 
> 
> 
> From: Anatol Belski <anatol....@belski.net>
> Sent: Wednesday, October 26, 2016 1:49:49 PM
> To: Dmitry Stogov; 'PHP internals list'
> Cc: Zeev Suraski; Xinchen Hui
> Subject: RE: [PHP-DEV] JIT for PHP project
> 
> Hi Dmitry,
> 
> > -Original Message-
> > From: Dmitry Stogov [mailto:dmi...@zend.com]
> > Sent: Thursday, September 1, 2016 1:57 PM
> > To: PHP internals list <internals@lists.php.net>
> > Cc: Zeev Suraski <z...@zend.com>; Xinchen Hui <xinche...@zend.com>
> > Subject: [PHP-DEV] JIT for PHP project
> >
> > Hi @internals,
> >
> > I'm glad to say that we have started a new JIT for PHP project and
> > hope to deliver some useful results for the next PHP version (probably
8.0).
> > We are very early in the process and for now there isn't any real
> performance
> > improvement yet.  So far we spent just 2 weeks mainly working on JIT
> > infrastructure for x86/x86_64 Linux (machine code generation,
> disassembling,
> > debugging, profiling, etc), and we especially made the JIT
> > code-generator
> as
> > minimal and simple as possible. The current state, is going to be used
> > as
> a
> > starting point for research of different JIT approaches and their
> usability for PHP.
> >
> > The code is available at:
> > https://github.com/zendtech/php-src/tree/jit-
> > dynasm/ext/opcache/jit
> >
> > The sources may be built and tested as regular PHP (no any special
> external
> > dependencies required).
> > JIT itself is implemented as a part of Opcache.
> > You may try it in action:
> >
> > sapi/cli/php -d opcache.jit_buffer_size=32M Zend/bench.php
> > sapi/cli/php -d opcache.jit_buffer_size=32M -d opcache.jit_debug=1
> > Zend/bench.php 2>&1 | less
> >
> > As I mentioned we didn't try to achieve any real performance
> > improvement
> yet,
> > although we do currently see 20% speedup on bench.php, but a bit of a
> > slowdown on real-life apps.
> >
> > Wish us luck :)
> >
> I just wanted to ask about the status. After starting to do some basic
work
>
https://github.com/zendtech/php-src/compare/jit-dynasm...weltling:jit-dynasm
> I've stumbled upon a couple of things
> 
> - in zend_elf.c, the current binary that loads php is being read in, I
guess this part
> needs to be ported to parse the Windows COFF format
> - with DynASM, seems zend_jit_x86.dasc will need to be extended for some
> compatibility, please correct if I'm wrong
> 
> Regarding these, maybe you've one or another tip for me? Is this still
relevant?
> Or I jump into it too early?
> 
> Thanks
> 
> anatol
> 
> 



-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] JIT for PHP project

2016-10-26 Thread Dmitry Stogov
Hi Anatol,


The project is in the very early development stage.

Now, JIT passes almost all PHPT tests, makes 3 times speed-up on bench.php and 
no significant difference on real-life apps (+/-5% depended on opcache.jit 
setting.

We are hardly working, implementing new ideas...


I think it's too early to port this to Windows. Once, we think, we are ready, 
I'll ask your help.

I suppose we won't need ELF->COFF porting, because we construct ELF objects 
just to debug JITed code in GDB and read PHP ELF object for simple symbol 
resolution in disassembler (most probably, both won't work on Windows anyway).

zend_jit_x86.dasc will have to be adopted to support Windows calling 
convention, of course.


Thanks. Dmitry.






From: Anatol Belski <anatol@belski.net>
Sent: Wednesday, October 26, 2016 1:49:49 PM
To: Dmitry Stogov; 'PHP internals list'
Cc: Zeev Suraski; Xinchen Hui
Subject: RE: [PHP-DEV] JIT for PHP project

Hi Dmitry,

> -Original Message-
> From: Dmitry Stogov [mailto:dmi...@zend.com]
> Sent: Thursday, September 1, 2016 1:57 PM
> To: PHP internals list <internals@lists.php.net>
> Cc: Zeev Suraski <z...@zend.com>; Xinchen Hui <xinche...@zend.com>
> Subject: [PHP-DEV] JIT for PHP project
>
> Hi @internals,
>
> I'm glad to say that we have started a new JIT for PHP project and hope to
> deliver some useful results for the next PHP version (probably 8.0).
> We are very early in the process and for now there isn't any real
performance
> improvement yet.  So far we spent just 2 weeks mainly working on JIT
> infrastructure for x86/x86_64 Linux (machine code generation,
disassembling,
> debugging, profiling, etc), and we especially made the JIT code-generator
as
> minimal and simple as possible. The current state, is going to be used as
a
> starting point for research of different JIT approaches and their
usability for PHP.
>
> The code is available at: https://github.com/zendtech/php-src/tree/jit-
> dynasm/ext/opcache/jit
>
> The sources may be built and tested as regular PHP (no any special
external
> dependencies required).
> JIT itself is implemented as a part of Opcache.
> You may try it in action:
>
> sapi/cli/php -d opcache.jit_buffer_size=32M Zend/bench.php sapi/cli/php -d
> opcache.jit_buffer_size=32M -d opcache.jit_debug=1 Zend/bench.php 2>&1 |
> less
>
> As I mentioned we didn't try to achieve any real performance improvement
yet,
> although we do currently see 20% speedup on bench.php, but a bit of a
> slowdown on real-life apps.
>
> Wish us luck :)
>
I just wanted to ask about the status. After starting to do some basic work
https://github.com/zendtech/php-src/compare/jit-dynasm...weltling:jit-dynasm
I've stumbled upon a couple of things

- in zend_elf.c, the current binary that loads php is being read in, I guess
this part needs to be ported to parse the Windows COFF format
- with DynASM, seems zend_jit_x86.dasc will need to be extended for some
compatibility, please correct if I'm wrong

Regarding these, maybe you've one or another tip for me? Is this still
relevant? Or I jump into it too early?

Thanks

anatol





RE: [PHP-DEV] JIT for PHP project

2016-10-26 Thread Anatol Belski
Hi Dmitry,

> -Original Message-
> From: Dmitry Stogov [mailto:dmi...@zend.com]
> Sent: Thursday, September 1, 2016 1:57 PM
> To: PHP internals list 
> Cc: Zeev Suraski ; Xinchen Hui 
> Subject: [PHP-DEV] JIT for PHP project
> 
> Hi @internals,
> 
> I'm glad to say that we have started a new JIT for PHP project and hope to
> deliver some useful results for the next PHP version (probably 8.0).
> We are very early in the process and for now there isn't any real
performance
> improvement yet.  So far we spent just 2 weeks mainly working on JIT
> infrastructure for x86/x86_64 Linux (machine code generation,
disassembling,
> debugging, profiling, etc), and we especially made the JIT code-generator
as
> minimal and simple as possible. The current state, is going to be used as
a
> starting point for research of different JIT approaches and their
usability for PHP.
> 
> The code is available at: https://github.com/zendtech/php-src/tree/jit-
> dynasm/ext/opcache/jit
> 
> The sources may be built and tested as regular PHP (no any special
external
> dependencies required).
> JIT itself is implemented as a part of Opcache.
> You may try it in action:
> 
> sapi/cli/php -d opcache.jit_buffer_size=32M Zend/bench.php sapi/cli/php -d
> opcache.jit_buffer_size=32M -d opcache.jit_debug=1 Zend/bench.php 2>&1 |
> less
> 
> As I mentioned we didn't try to achieve any real performance improvement
yet,
> although we do currently see 20% speedup on bench.php, but a bit of a
> slowdown on real-life apps.
> 
> Wish us luck :)
> 
I just wanted to ask about the status. After starting to do some basic work
https://github.com/zendtech/php-src/compare/jit-dynasm...weltling:jit-dynasm
I've stumbled upon a couple of things

- in zend_elf.c, the current binary that loads php is being read in, I guess
this part needs to be ported to parse the Windows COFF format
- with DynASM, seems zend_jit_x86.dasc will need to be extended for some
compatibility, please correct if I'm wrong

Regarding these, maybe you've one or another tip for me? Is this still
relevant? Or I jump into it too early?

Thanks

anatol




-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] JIT for PHP project

2016-09-01 Thread S.A.N
Is planned async/await and native event-loop (maybe libuv)?

Thank.

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] JIT for PHP project

2016-09-01 Thread Xinchen Hui
Hey:

On Thu, Sep 1, 2016 at 7:57 PM, Dmitry Stogov  wrote:

> Hi @internals,
>
> I'm glad to say that we have started a new JIT for PHP project and hope to
> deliver some useful results for the next PHP version (probably 8.0).
> We are very early in the process and for now there isn't any real
> performance improvement yet.  So far we spent just 2 weeks mainly working
> on JIT infrastructure for x86/x86_64 Linux (machine code generation,
> disassembling, debugging, profiling, etc), and we especially made the JIT
> code-generator as minimal and simple as possible. The current state, is
> going to be used as a starting point for research of different JIT
> approaches and their usability for PHP.
>
> The code is available at: https://github.com/zendtech/
> php-src/tree/jit-dynasm/ext/opcache/jit
>
> The sources may be built and tested as regular PHP (no any special
> external dependencies required).
> JIT itself is implemented as a part of Opcache.
> You may try it in action:
>
> sapi/cli/php -d opcache.jit_buffer_size=32M Zend/bench.php
> sapi/cli/php -d opcache.jit_buffer_size=32M -d opcache.jit_debug=1
> Zend/bench.php 2>&1 | less
>
> As I mentioned we didn't try to achieve any real performance improvement
> yet, although we do currently see 20% speedup on bench.php, but a bit of a
> slowdown on real-life apps.
>
Actually,  if you are lucky like me, you may see like 5% improvement on
wordpress. :)

thanks

>
> Wish us luck :)
>
> Thanks. Dmitry.
>
>


-- 
Xinchen Hui
@Laruence
http://www.laruence.com/