[SciPy-Dev] [Numpy-discussion] NumPy 1.12.0 release

Nathaniel Smith njs at pobox.com
Tue Jan 17 19:20:12 EST 2017


On Tue, Jan 17, 2017 at 3:47 PM, Neal Becker <ndbecker2 at gmail.com> wrote:
> Matthew Brett wrote:
>
>> Hi,
>>
>> On Tue, Jan 17, 2017 at 5:56 AM, Neal Becker <ndbecker2 at gmail.com> wrote:
>>> Charles R Harris wrote:
>>>
>>>> Hi All,
>>>>
>>>> I'm pleased to announce the NumPy 1.12.0 release. This release supports
>>>> Python 2.7 and 3.4-3.6. Wheels for all supported Python versions may be
>>>> downloaded from PiPY
>>>> <https://pypi.python.org/pypi?%3Aaction=pkg_edit&name=numpy>, the
>>>> tarball and zip files may be downloaded from Github
>>>> <https://github.com/numpy/numpy/releases/tag/v1.12.0>. The release notes
>>>> and files hashes may also be found at Github
>>>> <https://github.com/numpy/numpy/releases/tag/v1.12.0> .
>>>>
>>>> NumPy 1.12.0rc 2 is the result of 418 pull requests submitted by 139
>>>> contributors and comprises a large number of fixes and improvements.
>>>> Among
>>>> the many improvements it is difficult to  pick out just a few as
>>>> standing above the others, but the following may be of particular
>>>> interest or indicate areas likely to have future consequences.
>>>>
>>>> * Order of operations in ``np.einsum`` can now be optimized for large
>>>> speed improvements.
>>>> * New ``signature`` argument to ``np.vectorize`` for vectorizing with
>>>> core dimensions.
>>>> * The ``keepdims`` argument was added to many functions.
>>>> * New context manager for testing warnings
>>>> * Support for BLIS in numpy.distutils
>>>> * Much improved support for PyPy (not yet finished)
>>>>
>>>> Enjoy,
>>>>
>>>> Chuck
>>>
>>> I've installed via pip3 on linux x86_64, which gives me a wheel.  My
>>> question is, am I loosing significant performance choosing this pre-built
>>> binary vs. compiling myself?  For example, my processor might have some
>>> more features than the base version used to build wheels.
>>
>> I guess you are thinking about using this built wheel on some other
>> machine?   You'd have to be lucky for that to work; the wheel depends
>> on the symbols it found at build time, which may not exist in the same
>> places on your other machine.
>>
>> If it does work, the speed will primarily depend on your BLAS library.
>>
>> The pypi wheels should be pretty fast; they are built with OpenBLAS,
>> which is at or near top of range for speed, across a range of
>> platforms.
>>
>> Cheers,
>>
>> Matthew
>
> I installed using pip3 install, and it installed a wheel package.  I did not
> build it - aren't wheels already compiled packages?  So isn't it built for
> the common denominator architecture, not necessarily as fast as one I built
> myself on my own machine?  My question is, on x86_64, is this potential
> difference large enough to bother with not using precompiled wheel packages?

Ultimately, it's going to depend on all sorts of things, including
most importantly your actual code. Like most speed questions, the only
real way to know is to try it and measure the difference.

The wheels do ship with a fast BLAS (OpenBLAS configured to
automatically adapt to your CPU at runtime), so the performance will
at least be reasonable. Possible improvements would include using a
different and somehow better BLAS (MKL might be faster in some cases),
tweaking your compiler options to take advantage of whatever SIMD ISAs
your particular CPU supports (numpy's build system doesn't do this
automatically but in principle you could do it by hand -- were you
bothering before? does it even make a difference in practice? I
dunno), and using a new compiler (the linux wheels use a somewhat
ancient version of gcc for Reasons; newer compilers are better at
optimizing -- how much does it matter? again I dunno).

Basically: if you want to experiment and report back then I think we'd
all be interested to hear; OTOH if you aren't feeling particularly
curious/ambitious then I wouldn't worry about it :-).

-n

-- 
Nathaniel J. Smith -- https://vorpus.org



More information about the SciPy-Dev mailing list