Intel 15 supports _Quad after all; one just needs the right flags,
which I didn't find documented anywhere.
Jeff
========================================================
You need to use -Qoption,cpp,--extended_float_type option...See below:
$ cat test.c
void test() {
_Quad xx;
}
$ icc test.c -c
test.c(2): error: identifier "_Quad" is undefined
_Quad xx;
^
compilation aborted for test.c (code 2)
$ icc test.c -c -Qoption,cpp,--extended_float_type
========================================================
On Sat, Feb 28, 2015 at 9:32 PM, Jeff Hammond <
jeff.s...@gmail.com> wrote:
> Devin:
>
> I just tested and Intel C 15 doesn't appear to support _Quad but does
> support __float128.
>
> Best,
>
> Jeff
>
> On Fri, Feb 27, 2015 at 12:54 PM, Devin Matthews
> <
devinam...@gmail.com> wrote:
>> As far as compiler support, this is what I have been able to dig up:
>>
>> GCC and maybe Intel:
>>
>> Builtin __float128 and __complex128 types (since 4.6), library support
>> through -lquadmath. For Intel, I also see references to a _Quad type, but it
>> seems like maybe this is only older versions (Jeff?)?
>>
>> XL on BG/Q:
>>
>> The "native" option seems to be -qldbl128 along with long double on PPC.
>> There is also the -qfloat=gcclongdouble option for compatibility with GCC's
>> __float128.
>>
>> Otherwise, there are multiprecision libraries such as gmp and mpfr, although
>> I imagine that would be even slower. Or, you could write the microkernel in
>> FORTRAN and use real*16 :). You could also do explicit software
>> double-double arithmetic.
>>
>> Devin
>>
>>
>> On 2/27/15, 2:00 PM, Jack Poulson wrote:
>>
>> I agree with Jeff that properly handling the memory accesses is the
>> difficult part (what I would hope BLIS could handle).
>>
>> Ideally it would be straightforward to swap out the microkernels for
>> quad-precision; an initial efficient implementation (relative to
>> modified netlib) would be a great impetus for pushing further.
>>
>> Jack
>>
>> On 02/27/2015 11:57 AM, Jeff Hammond wrote:
>>
>> Given that the biggest difference in performance between Netlib and
>> BLIS/MKL/etc. is due to data access rather than FPU utilization, I do
>> not think hardware support is required for this to be of interest for
>> BLIS.
>>
>> If BLIS were to emulate the QP computation in software and have all
>> the cache-friendly access that's independent of the precise width of a
>> floating point number, I would expect Jack' estimation of 5-10x to be
>> pretty accurate.
>>
>> Perhaps the first step is for Field, Robert, et al. to write an paper
>> about how to implement QGEMM efficiently in BLIS.
>>
>> Best,
>>
>> Jeff
>>
>> On Fri, Feb 27, 2015 at 11:49 AM, Field G. Van Zee <
fi...@cs.utexas.edu>
>> wrote:
>>
>> Jack,
>>
>> I always assumed people would not be generally interested in quad precision
>> until it was widely supported in hardware (and mainstream languages and
>> compilers). Since I have given literally zero attention to the issues
>> involved, I can't even hazard a rough guess for the effort that would be
>> required.
>>
>> Hopefully someone else can chime in.
>>
>> Field
>>
>>
>> On 02/27/15 13:42, Jack Poulson wrote:
>>
>> Dear BLIS developers,
>>
>> Many of the state-of-the-art solvers for the sparse linear and least
>> squares problems create intermediate matrices whose effective condition
>> numbers are the potentially the square of the condition number of the
>> original matrix.
>>
>> Furthermore, there are many techniques where, if the solution is desired
>> to n digits of accuracy, then the floating-point precision needs to
>> support 2*n digits of accuracy. With double-precision, this implies that
>> at most eight-digits of accuracy could be achieved with such techniques
>> (sparse Interior Point Methods often satisfy this property).
>>
>> For this reason, it is of use for a library to support quad-precision
>> factorizations, matrix-vector multiplication, and triangular solves.
>> Libraries such as PETSc currently create custom modifications of the
>> netlib implementation of the BLAS, but in no way could these
>> modifications be expected to be high-performance.
>>
>> How much effort do you think would be required for BLIS to support
>> quad-precision with a cost within a factor of 5-10 of double-precision?
>> I would be willing to dedicate a significant portion of my energy to
>> helping to support quad-precision Interior Point Methods in Elemental,
>> and this would be a critical component of such an effort.
>>
>> Jack