all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Emanuel Berg <incal@dataswamp.org>
To: emacs-devel@gnu.org
Subject: Re: [PATCH] Re: Bignum performance (was: Shrinking the C core)
Date: Mon, 14 Aug 2023 04:20:18 +0200	[thread overview]
Message-ID: <877cpyicv1.fsf@dataswamp.org> (raw)
In-Reply-To: 87ttt3fdjt.fsf@localhost

Ihor Radchenko wrote:

>>> In practice, as more generic benchmarks demonstrated, we
>>> only had 10% performance hit. Not something to claim that
>>> Elisp is much slower compared to CL.
>>
>> What do you mean, generic +10% is a huge improvement.
>
> It is, but it is also tangent to comparison between Elisp
> and CL. The main (AFAIU) difference between Elisp and CL is
> in how the bignums are stored. Elisp uses its own internal
> object type while CL uses GMP's native format.

GMP = GNU Multiple Precision Arithmetic Library.

https://en.wikipedia.org/wiki/GNU_Multiple_Precision_Arithmetic_Library

> And we have huge overheads converting things back-and-forth
> between GMP and Elisp formats. It is by choice. And my patch
> did not do anything about this difference.

But that's all the better, your patch solved (very likely) the
problem and did so without causing havoc by trying to forcibly
merge opposing solutions.

And the method was: instead of reallocating new objects for
bignums, we are no reusing existing allocations for new data?

>>> It would be more useful to compare CL with Elisp using
>>> less specialized benchmarks that do not involve bignums.
>>> As Mattias commented, we do not care much about bignum
>>> performance in Elisp - it is a rarely used feature; we are
>>> content that it simply works, even if not fast, and the
>>> core contributors (at least, Mattias) are not seeing
>>> improving bignums as their priority.
>>
>> But didn't your patch do that already?
>
> No. The benchmark only compared between Elisp before/after
> the patch. Not with CL.

No, that much I understood. It was Elisp before and after the
patch, as you say. Isn't before/after all data you need? Nah,
it can be useful to have an external reference as well and
here were are also hoping we can use the benchmarks to answer
they question if CL is just so much faster in general, or if
there are certain areas where it excels - and if so - what
those areas are and what they contain to unlock all
that speed.

>> Instead of relying on a single benchmark, one should have
>> a set of benchmarks and every benchmark should have
>> a purpose, this doesn't have to be so involved tho, for
>> example "bignums" could be the purpose of my benchmark, so
>> one would have several, say a dozen, each with the purpose
>> of slowing the computer down with respect to some aspect or
>> known situation that one would try to provoke ... It can be
>> well-known algorithms for that matter.
>>
>> One would then do the same thing in CL and see, where do CL
>> perform much better? The next question would be, why?
>
> Sure. Feel free to share such benchmark for Elisp vs. CL.
> I only know the benchmark library for Elisp. No equivalent
> comparable benchmark for CL.

I'm working on it! This will be very interesting, for sure.

The need for speed - but in a very methodical way ...

-- 
underground experts united
https://dataswamp.org/~incal




  reply	other threads:[~2023-08-14  2:20 UTC|newest]

Thread overview: 247+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-09  9:46 Shrinking the C core Eric S. Raymond
2023-08-09 10:55 ` Andreas Schwab
2023-08-09 11:03   ` Eric S. Raymond
2023-08-09 11:29     ` Andreas Schwab
2023-08-09 12:34 ` Po Lu
2023-08-09 15:51   ` Eric S. Raymond
2023-08-09 23:56     ` Po Lu
2023-08-10  1:19       ` Eric S. Raymond
2023-08-10  1:47         ` Christopher Dimech
2023-08-10  1:58         ` Eric Frederickson
2023-08-10  2:07           ` Sam James
2023-08-10  2:44             ` Po Lu
2023-08-10  6:48             ` Eli Zaretskii
2023-08-10 21:21               ` Eric S. Raymond
2023-08-10 21:19             ` Eric S. Raymond
2023-08-10 21:56               ` Emanuel Berg
2023-08-11  5:46               ` Eli Zaretskii
2023-08-11  8:45                 ` Emanuel Berg
2023-08-11 11:24                   ` Eli Zaretskii
2023-08-11 12:12                     ` Emanuel Berg
2023-08-11 13:16                       ` Eli Zaretskii
2023-08-10  2:28         ` Po Lu
2023-08-10  4:15           ` Christopher Dimech
2023-08-10  7:44         ` Eli Zaretskii
2023-08-10 21:54           ` Emanuel Berg
2023-08-11 10:27             ` Bignum performance (was: Shrinking the C core) Ihor Radchenko
2023-08-11 12:10               ` Emanuel Berg
2023-08-11 12:32                 ` Ihor Radchenko
2023-08-11 12:38                   ` Emanuel Berg
2023-08-11 14:07                     ` [PATCH] " Ihor Radchenko
2023-08-11 18:06                       ` Emanuel Berg
2023-08-11 19:41                         ` Ihor Radchenko
2023-08-11 19:50                           ` Emanuel Berg
2023-08-12  8:24                             ` Ihor Radchenko
2023-08-12 16:03                               ` Emanuel Berg
2023-08-13  9:09                                 ` Ihor Radchenko
2023-08-13  9:49                                   ` Emanuel Berg
2023-08-13 10:21                                     ` Ihor Radchenko
2023-08-14  2:20                                       ` Emanuel Berg [this message]
2023-08-14  2:42                                         ` [PATCH] Re: Bignum performance Po Lu
2023-08-14  4:16                                           ` Emanuel Berg
2023-08-14  7:15                                           ` Ihor Radchenko
2023-08-14  7:50                                             ` Po Lu
2023-08-14  9:28                                               ` Ihor Radchenko
2023-08-15 14:28                                             ` Emanuel Berg
2023-08-14  7:20                                         ` [PATCH] Re: Bignum performance (was: Shrinking the C core) Ihor Radchenko
2023-08-11 22:46                           ` Emanuel Berg
2023-08-12  8:30                             ` Ihor Radchenko
2023-08-12 16:22                               ` Emanuel Berg
2023-08-13  9:12                                 ` Ihor Radchenko
2023-08-11 14:14               ` Mattias Engdegård
2023-08-11 18:09                 ` Emanuel Berg
2023-08-10 23:49           ` Shrinking the C core Eric S. Raymond
2023-08-11  0:03             ` Christopher Dimech
2023-08-11  8:24               ` Immanuel Litzroth
2023-08-11  7:03             ` Eli Zaretskii
2023-08-11  7:19               ` tomas
2023-08-11 10:57               ` Eli Zaretskii
2023-08-10 11:28         ` Dmitry Gutov
2023-08-10 21:26           ` Eric S. Raymond
2023-08-12  2:46           ` Richard Stallman
2023-08-12  3:22             ` Emanuel Berg
2023-08-12  8:33               ` Ihor Radchenko
2023-08-12 15:58                 ` Emanuel Berg
2023-08-13  9:13                   ` Ihor Radchenko
2023-08-13  9:55                     ` Emanuel Berg
2023-08-13 10:23                       ` Ihor Radchenko
2023-08-13 20:55                         ` Emanuel Berg
2023-08-14  0:13                         ` Emanuel Berg
2023-08-12 18:32               ` tomas
2023-08-12 22:08                 ` Emanuel Berg
2023-08-12 23:09                 ` Emanuel Berg
2023-08-13  5:50                   ` tomas
2023-08-13  8:38                     ` Emanuel Berg
2023-08-13 15:54                     ` [External] : " Drew Adams
2023-08-13  8:00                   ` Andreas Schwab
2023-08-13  9:21                     ` Emanuel Berg
2023-08-14  7:27                       ` Alfred M. Szmidt
2023-08-14  7:36                         ` Ihor Radchenko
2023-08-14  7:50                           ` Alfred M. Szmidt
2023-08-15 22:57                             ` Emanuel Berg
2023-08-16 10:27                               ` Ihor Radchenko
2023-08-19 13:29                                 ` Emanuel Berg
2023-08-20  5:09                                   ` Ihor Radchenko
2023-08-20  6:51                                     ` Emanuel Berg
2023-08-20  7:14                                       ` Ihor Radchenko
2023-08-20  7:52                                         ` Emanuel Berg
2023-08-20 13:01                                           ` tomas
2023-08-20 13:12                                             ` Ihor Radchenko
2023-08-20  8:28                                         ` Alfred M. Szmidt
2023-08-20  9:29                                           ` Emanuel Berg
2023-08-20 15:22                                             ` Alfred M. Szmidt
2023-08-20 15:36                                               ` Ihor Radchenko
2023-08-20 15:45                                                 ` Eli Zaretskii
2023-08-20 15:54                                                   ` Ihor Radchenko
2023-08-20 16:29                                                     ` Alfred M. Szmidt
2023-08-20 16:37                                                       ` Ihor Radchenko
2023-08-20 17:19                                                         ` Alfred M. Szmidt
2023-08-20 17:31                                                           ` Ihor Radchenko
2023-08-20 18:54                                                             ` Alfred M. Szmidt
2023-08-20 19:07                                                               ` Eli Zaretskii
2023-08-27  3:53                                                                 ` Emanuel Berg
2023-08-20 19:15                                                               ` Ihor Radchenko
2023-08-20 19:24                                                                 ` Ihor Radchenko
2023-08-21  2:33                                                                   ` Eli Zaretskii
2023-08-21  4:11                                                                     ` Ihor Radchenko
2023-08-21  4:15                                                                       ` Po Lu
2023-08-21  4:36                                                                         ` Ihor Radchenko
2023-08-21  4:43                                                                           ` Po Lu
2023-08-21  5:06                                                                             ` Ihor Radchenko
2023-08-21  5:25                                                                               ` [External] : " Drew Adams
2023-08-21  5:34                                                                               ` Po Lu
2023-08-21  9:17                                                                                 ` Add more supported primitives in libgccjit IR (was: Shrinking the C core) Ihor Radchenko
2023-08-21  9:42                                                                                   ` Gregory Heytings
2023-08-21 10:36                                                                                     ` Ihor Radchenko
2023-08-21 11:02                                                                                       ` Alfred M. Szmidt
2023-08-21 11:41                                                                                         ` Ihor Radchenko
2023-08-21 12:20                                                                                           ` Eli Zaretskii
2023-08-21 14:49                                                                                             ` Add more supported primitives in libgccjit IR Andrea Corallo
2023-08-23 10:11                                                                                               ` Ihor Radchenko
2023-08-25  9:19                                                                                                 ` Andrea Corallo
2023-08-25 11:06                                                                                                   ` Ihor Radchenko
2023-08-25 14:26                                                                                                     ` Andrea Corallo
2023-08-26 11:14                                                                                                       ` Ihor Radchenko
2023-08-27  1:40                                                                                                   ` Emanuel Berg
2023-08-27  7:38                                                                                                     ` Emanuel Berg
2023-08-27 13:42                                                                                                       ` Andrea Corallo
2023-08-27 22:19                                                                                                         ` Emanuel Berg
2023-08-28  5:04                                                                                                           ` Andrea Corallo
2023-08-28 19:49                                                                                                             ` Emanuel Berg
2023-08-26  0:47                                                                                               ` Emanuel Berg
2023-08-26  8:26                                                                                                 ` Ihor Radchenko
2023-08-26 17:52                                                                                                   ` Emanuel Berg
2023-08-21 11:05                                                                                       ` Add more supported primitives in libgccjit IR (was: Shrinking the C core) Gregory Heytings
2023-08-21 11:46                                                                                         ` Ihor Radchenko
2023-08-21 12:33                                                                                           ` Gregory Heytings
2023-08-21 11:34                                                                                       ` Add more supported primitives in libgccjit IR Manuel Giraud via Emacs development discussions.
2023-08-21 11:02                                                                                     ` Add more supported primitives in libgccjit IR (was: Shrinking the C core) Alfred M. Szmidt
2023-08-21 11:12                                                                                   ` Add more supported primitives in libgccjit IR Eli Zaretskii
2023-08-21 11:53                                                                                     ` Ihor Radchenko
2023-08-27  2:04                                                                                 ` Shrinking the C core Emanuel Berg
2023-08-21  7:59                                                                               ` Gregory Heytings
2023-08-27  5:31                                                                               ` Emanuel Berg
2023-08-27  6:16                                                                                 ` Emanuel Berg
2023-08-21 10:48                                                                       ` Eli Zaretskii
2023-08-21 11:56                                                                         ` Ihor Radchenko
2023-08-21 12:22                                                                           ` Eli Zaretskii
2023-08-28  4:41                                                                   ` Emanuel Berg
2023-08-28 11:27                                                                     ` Ihor Radchenko
2023-08-20 20:15                                                                 ` Alfred M. Szmidt
2023-08-20 20:39                                                                   ` Ihor Radchenko
2023-08-21  5:59                                                                     ` Alfred M. Szmidt
2023-08-21  6:23                                                                       ` Ihor Radchenko
2023-08-21  7:21                                                                         ` Alfred M. Szmidt
2023-08-21  7:26                                                                           ` Ihor Radchenko
2023-08-21  7:52                                                                             ` Alfred M. Szmidt
2023-08-21 10:46                                                                               ` Ihor Radchenko
2023-08-21 11:02                                                                                 ` Alfred M. Szmidt
2023-08-27  4:01                                                                 ` Emanuel Berg
2023-08-27  8:53                                                                   ` Ihor Radchenko
2023-08-27  3:48                                                               ` Emanuel Berg
2023-08-27  9:06                                                                 ` Ihor Radchenko
2023-08-27  3:25                                                   ` Emanuel Berg
2023-08-27  8:55                                                     ` Ihor Radchenko
2023-08-20 16:03                                                 ` Alfred M. Szmidt
2023-08-20 16:34                                                   ` Ihor Radchenko
2023-08-20 17:19                                                     ` Alfred M. Szmidt
2023-08-20 17:25                                                       ` Ihor Radchenko
2023-08-20 18:54                                                         ` Alfred M. Szmidt
2023-08-20 19:02                                                           ` Eli Zaretskii
2023-08-20 20:11                                                             ` Alfred M. Szmidt
2023-08-23 21:09                                                               ` Emanuel Berg
2023-08-26  2:01                                                                 ` Richard Stallman
2023-08-26  5:48                                                                   ` Eli Zaretskii
2023-08-26 18:15                                                                     ` Emanuel Berg
2023-08-26 18:27                                                                       ` Eli Zaretskii
2023-08-20 19:14                                                 ` Eli Zaretskii
2023-08-20 19:44                                                   ` Ihor Radchenko
2023-08-20 20:11                                                     ` Alfred M. Szmidt
2023-08-21  2:35                                                     ` Eli Zaretskii
2023-08-21  8:48                                                       ` Ihor Radchenko
2023-08-21 11:10                                                         ` Eli Zaretskii
2023-08-21 11:59                                                           ` Ihor Radchenko
2023-08-21 12:23                                                             ` Eli Zaretskii
2023-08-23 10:13                                                               ` Ihor Radchenko
2023-08-20 20:32                                               ` Emanuel Berg
2023-08-21  6:19                                                 ` Alfred M. Szmidt
2023-08-21  6:26                                                   ` Ihor Radchenko
2023-08-21  7:21                                                     ` Alfred M. Szmidt
2023-08-21  7:25                                                       ` Ihor Radchenko
2023-08-21  7:52                                                         ` Alfred M. Szmidt
2023-08-21 11:26                                                           ` Ihor Radchenko
2023-08-22 23:55                                                   ` Emanuel Berg
2023-08-23  7:04                                                     ` Alfred M. Szmidt
2023-08-23 17:24                                                       ` Emanuel Berg
2023-08-24 20:02                                                         ` Emanuel Berg
2023-08-20 21:51                                       ` [External] : " Drew Adams
2023-08-21  8:54                                         ` Type declarations in Elisp (was: [External] : Re: Shrinking the C core) Ihor Radchenko
2023-08-21  9:30                                           ` Gerd Möllmann
2023-08-21 11:13                                             ` Type declarations in Elisp Eli Zaretskii
2023-08-21 11:37                                             ` Type declarations in Elisp (was: [External] : Re: Shrinking the C core) Ihor Radchenko
2023-08-22  5:34                                               ` Type declarations in Elisp Gerd Möllmann
2023-08-22  6:16                                                 ` Ihor Radchenko
2023-08-22 11:14                                                 ` Eli Zaretskii
2023-08-22 23:33                                                   ` Emanuel Berg
2023-08-25  9:29                                                     ` Andrea Corallo
2023-08-25 20:42                                                       ` Emanuel Berg
2023-08-27  8:42                                                     ` Ihor Radchenko
2023-08-27 14:04                                                       ` Andrea Corallo
2023-08-27 14:07                                                         ` Ihor Radchenko
2023-08-27 15:46                                                           ` Andrea Corallo
2023-08-27 17:15                                                             ` Ihor Radchenko
2023-08-27 18:06                                                               ` Andrea Corallo
2023-08-28  9:56                                                                 ` Ihor Radchenko
2023-08-28 19:06                                                                   ` Emanuel Berg
2023-08-18  8:35                               ` Shrinking the C core Aurélien Aptel
2023-08-19 13:32                                 ` Emanuel Berg
2023-08-31  1:41                                 ` Emanuel Berg
2023-08-14  2:36                   ` Richard Stallman
2023-08-14  4:12                     ` Emanuel Berg
2023-08-14 11:15                       ` Ihor Radchenko
2023-08-12  3:28             ` Christopher Dimech
2023-08-12  3:48               ` Emanuel Berg
2023-08-12  3:50               ` Emanuel Berg
2023-08-12  6:00                 ` Christopher Dimech
2023-08-12  6:02               ` Eli Zaretskii
2023-08-12  7:38                 ` Christopher Dimech
2023-08-09 12:45 ` Eli Zaretskii
2023-08-09 16:11   ` Eric S. Raymond
2023-08-09 16:44     ` Eli Zaretskii
2023-08-09 17:57       ` Eric S. Raymond
  -- strict thread matches above, loose matches on Subject: below --
2023-08-14  6:28 [PATCH] Re: Bignum performance (was: Shrinking the C core) Gerd Möllmann
2023-08-14  6:56 ` Gerd Möllmann
2023-08-14  7:04   ` Ihor Radchenko
2023-08-14  7:35     ` Gerd Möllmann
2023-08-14  8:09       ` Ihor Radchenko
2023-08-14  9:28         ` Gerd Möllmann
2023-08-14  9:42           ` Ihor Radchenko
2023-08-15 14:03             ` Emanuel Berg
2023-08-15 15:01               ` Ihor Radchenko
2023-08-15 22:21                 ` Emanuel Berg
2023-08-15 22:33                 ` Emanuel Berg
2023-08-16  4:36                   ` tomas
2023-08-16  5:23                     ` Emanuel Berg
2023-08-14 16:51           ` Emanuel Berg
2023-08-15  4:58             ` Gerd Möllmann
2023-08-15 14:20               ` Emanuel Berg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=877cpyicv1.fsf@dataswamp.org \
    --to=incal@dataswamp.org \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.