From 95e8dcda1503c2b391c47fb2357ba0083d9d1d6f Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Keck <jean-baptiste.keck@imag.fr> Date: Sun, 6 Oct 2019 23:23:21 +0200 Subject: [PATCH] mkl --- hysop/numerics/fft/_mkl_fft.py | 12 ++++-------- hysop/numerics/tests/test_fft.py | 11 +++++++---- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/hysop/numerics/fft/_mkl_fft.py b/hysop/numerics/fft/_mkl_fft.py index 154fea9a7..295e5b84e 100644 --- a/hysop/numerics/fft/_mkl_fft.py +++ b/hysop/numerics/fft/_mkl_fft.py @@ -1,5 +1,5 @@ """ -FFT interface for fast Fourier Transforms using Intel MKL (FFTW3 wrappers). +FFT interface for fast Fourier Transforms using Intel MKL (numpy interface). :class:`~hysop.numerics.MklFFT` :class:`~hysop.numerics.MklFFTPlan` """ @@ -225,13 +225,9 @@ class MklFFT(HostFFTI): """ Interface to compute local to process FFT-like transforms using the mkl fft backend. - Mkl fft backend has many disadvantages: - - only double precision is really supported - - single precision is supported by casting to double precision - - creates intermediate temporary buffers at each call - - no planning capabilities (mkl.fft methods are just wrapped into fake plans) - - The only advantage is that planning won't destroy original inputs. + Mkl fft backend has some disadvantages: + - creates intermediate temporary buffers at each call (out and tmp for real-to-real transforms) + - no planning capabilities (mkl.fft methods are just wrapped into fake plans) """ def __init__(self, backend=None, allocator=None, diff --git a/hysop/numerics/tests/test_fft.py b/hysop/numerics/tests/test_fft.py index 3c4f4d0e9..031b5b2b0 100644 --- a/hysop/numerics/tests/test_fft.py +++ b/hysop/numerics/tests/test_fft.py @@ -21,8 +21,10 @@ from hysop.numerics.fft.scipy_fft import ScipyFFT from hysop.numerics.fft.fftw_fft import FftwFFT from hysop.numerics.fft.gpyfft_fft import GpyFFT -# For now Intel has a bug in their MKL FFTW-like interface so we do not test it -from hysop.numerics.fft._mkl_fft import MklFFT +# For now Intel has a bug in their MKL numpy and scipy interfaces so we do not test it (last checked 4 october 2019) +#from hysop.numerics.fft._mkl_fft import MklFFT + +stop_on_error=False class TestFFT(object): @@ -32,7 +34,7 @@ class TestFFT(object): 'scipy': ScipyFFT(warn_on_allocation=False), 'fftw': FftwFFT(warn_on_allocation=False, warn_on_misalignment=False), - 'mkl': MklFFT(warn_on_allocation=False), + #'mkl': MklFFT(warn_on_allocation=False), }, Implementation.OPENCL: {} } @@ -467,7 +469,8 @@ class TestFFT(object): if failed: print msg='Some implementations failed !' - #raise RuntimeError(msg) + if stop_on_error: + raise RuntimeError(msg) print '\n C2C-C2C transform' for (shape, cshape, rshape, N, Nc, Nr, -- GitLab