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