This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: Tester for openblas needed
- From: "Tony Kelman" <tony at kelman dot net>
- To: <cygwin at cygwin dot com>
- Date: Tue, 21 Oct 2014 10:49:18 -0700
- Subject: Re: Tester for openblas needed
- Authentication-results: sourceware.org; auth=none
- References: <54450C0A dot 6050705 at gmail dot com> <BAY169-DS3454FE83B442F8A23182EBA7970 at phx dot gbl> <54451D4C dot 5080604 at gmail dot com> <BAY169-DS41999173A807A98C0210C7A7970 at phx dot gbl> <54458524 dot 8010603 at gmail dot com> <BAY169-DS201BCE4DCECE478E49F36BA7970 at phx dot gbl> <5445F384 dot 705 at gmail dot com> <544649E9 dot 80808 at gmail dot com> <87iojdpdev dot fsf at Rainer dot invalid>
It should determine the number of cores at runtime as well as the level
of SSE/AVX support: i686 starts with the PentiumPro, which didn't have
SSE. Fixing this at compile time is nice for local builds, but no good
for packages.
As long as you set DYNAMIC_ARCH=1 (which Marco did), openblas does
exactly this when it comes to SIMD instruction sets (and more details
like tuning for different cache sizes, etc). They have optimized routines
for this list of processor families:
https://github.com/xianyi/OpenBLAS/blob/ac5a7e1c1bb75d1accfb83c394e1535b5ff170d2/driver/others/dynamic.c#L296-L318
the right implementation gets used based on runtime detection, which is
why the compiled dll is much larger than reference netlib blas.
Hopefully the number of threads you set at build time is just a maximum.
The library is explicitly designed so you can control the number of
threads used at runtime. What we're not sure about is what happens in
the default case when you don't manually set the number of threads.
-Tony
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple