Feature #18349
closed
Let --jit enable YJIT on supported platforms
Added by k0kubun (Takashi Kokubun) about 3 years ago.
Updated almost 3 years ago.
Description
Proposal¶
- Rename the current
--jit
to --mjit
, as well as reverting [Feature #17490]
- Let
--jit
mean --yjit
on YJIT-supported platforms, and --mjit
on other platforms.
Use case¶
YJIT currently achieves better performance than MJIT in many benchmarks, which means users should choose YJIT over MJIT with Ruby 3.1 in many cases. Even in benchmarks where MJIT could perform well, you need to spend a lot of time to finish warmup and tune MJIT carefully to see the peak performance.
However, it's hard for many people, not including heavy users like you reading this, to understand which JIT variant they should try and/or use MJIT properly. Assuming x86 is prevalent enough, I want to make YJIT the default JIT so that non-heavy users will be able to see the benefit of JIT earlier.
- Description updated (diff)
YJIT supports only limited platforms, --jit
should mean --mjit
on such platforms.
- Subject changed from Let --jit enable YJIT to Let --jit enable YJIT on supported platforms
- Description updated (diff)
YJIT supports only limited platforms, --jit should mean --mjit on such platforms.
That sounds reasonable. I updated my proposal.
I think this is a good idea. I am assuming that --jit
will remain not enabled by default (which is good).
Right, I intend to keep --jit
disabled by default in the scope of this ticket.
I agreed with the proposal, including making mjit
as a fallback.
Matz.
Will --yjit
option remain? I prefer the following behaviors.
-
--jit
means the best strategy of Ruby JIT selected by Ruby core.
- If users hope to enforce JIT strategy, They can choose
--yjit
or --mjit
in the future.
I'm not sure the current proposal is above behavior.
Will --yjit option remain? I prefer the following behaviors.
- --jit means the best strategy of Ruby JIT selected by Ruby core.
- If users hope to enforce JIT strategy, They can choose --yjit or --mjit in the future.
I'm not sure the current proposal is above behavior.
I think it's the same as what's proposed here. --jit
is to automatically choose our latest recommendation, but both --mjit
and --yjit
would be still useful for two use cases:
- Override the recommendation (i.e. using MJIT on x86)
- Explicitly specify JIT when the same benchmark script could be run on multiple platforms, e.g. Mac laptops of x86 or Arm.
- Status changed from Open to Closed
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0