Is this make sence? Dynamic assembler for python

David Cournapeau cournape at gmail.com
Mon Jun 21 12:00:54 EDT 2010


On Mon, Jun 21, 2010 at 12:34 PM, Steven D'Aprano
<steve-REMOVE-THIS at cybersource.com.au> wrote:
> On Sun, 20 Jun 2010 22:45:14 +0100, Rhodri James wrote:
>
>> Mixing Python and assembler is a bizarre thing to want to do in general,
>> but...
>>
>> On Sun, 20 Jun 2010 01:52:15 +0100, Steven D'Aprano
>> <steve at remove-this-cybersource.com.au> wrote:
>>
>>> (3) Modern C compilers can produce better (faster, more efficient)
>>> machine code than the best assembly code written by hand.
>>
>> No.  Modern C compilers often produce very good machine code, but the
>> best hand-written assembly code will be better.  I can usually write
>> *very* marginally better code than GCC achieves at work, though 99% of
>> the time I don't because it would be a maintenance nightmare.
>
>
> Not that I don't believe you, but that is an extraordinary claim that
> would require more evidence than just "Hey, some guy on the Internet
> reckons his assembly code can regularly out-perform optimizing C
> compilers" before I will change my opinion *wink*

No, it is not extraordinary claim, I would actually think it is common
knowledge. For performance sensitive, extremely well constraints
algorithm, ASM easily beats general C compilers. Most optimized
numerical libraries rely quite heavily on ASM to get significant speed
up (Atlas, FFTW, MKL). C has actually a few majors aspects which makes
some optimizations very hard to do - things like pointer aliasing, for
example, where the compiler has to be quite pessimistic in general.

Also, the fact that current compilers can generate code which is
significantly faster than they used to a few years ago *on the exact
same C code* show that it is not that hard to beat C compilers. They
manage to do it by themselves :)

David



More information about the Python-list mailing list