clFFT: Segmentation fault in testsuite

I tried running the testsuite on a laptop running up-to-date Debian testing, using the 2.12.1 tagged version as well as the latest tip of develop. I had to apply a patch to get around #160 first.

OpenCL info:

clFFT client API version:  2.12.1
clFFT runtime version:     2.12.1

    CL_PLATFORM_PROFILE:     FULL_PROFILE
    CL_PLATFORM_VERSION:     OpenCL 2.0 pocl 0.13, LLVM 3.8.1
    CL_PLATFORM_NAME:        Portable Computing Language
    CL_PLATFORM_VENDOR:      The pocl project
    CL_PLATFORM_EXTENSIONS:  cl_khr_icd

    CL_DEVICE_NAME:                      pthread-Intel(R) Core(TM) i5-4300M CPU @ 2.60GHz
    CL_DEVICE_VERSION:                   OpenCL 2.0 pocl
    CL_DRIVER_VERSION:                   0.13
    CL_DEVICE_TYPE:                      defaultCPU
    CL_DEVICE_MAX_CLOCK_FREQUENCY:       3300
    CL_DEVICE_ADDRESS_BITS:              64
    CL_DEVICE_AVAILABLE:                 TRUE
    CL_DEVICE_COMPILER_AVAILABLE:        TRUE
    CL_DEVICE_OPENCL_C_VERSION:          OpenCL C 2.0
    CL_DEVICE_MAX_WORK_GROUP_SIZE:       4096
    CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS:  3
                         Dimension[ 0 ]  4096
                         Dimension[ 1 ]  4096
                         Dimension[ 2 ]  4096
    CL_DEVICE_HOST_UNIFIED_MEMORY:       TRUE
    CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE:  10424524800 ( 10180200 KB )
    CL_DEVICE_LOCAL_MEM_SIZE:            10424524800 ( 10180200 KB )
    CL_DEVICE_GLOBAL_MEM_SIZE:           10424524800 ( 9941 MB )
    CL_DEVICE_MAX_MEM_ALLOC_SIZE:        10424524800 ( 9941 MB )
    CL_DEVICE_EXTENSIONS:                cl_khr_byte_addressable_store cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_spir cl_khr_int64 cl_khr_fp64 cl_khr_int64_base_atomics cl_khr_int64_extended_atomics

output of ./Test --short:

[ RUN      ] accuracy_test_pow2_double.large_2D_in_place_real_to_hermitian_interleaved
Segmentation fault

applied patch:

From 3e5e5c5da7c87c1837128b82a64f61f8978cc750 Mon Sep 17 00:00:00 2001
From: Ghislain Antony Vaillant <ghisvail@gmail.com>
Date: Thu, 4 Aug 2016 10:19:00 +0100
Subject: [PATCH] Bypass execution of memory intensive testcases

---
 src/tests/accuracy_test_postcallback.cpp     | 40 ++++++++++++++--------------
 src/tests/accuracy_test_pow2.cpp             | 22 +++++++--------
 src/tests/accuracy_test_pow2_precallback.cpp | 22 +++++++--------
 3 files changed, 42 insertions(+), 42 deletions(-)

diff --git a/src/tests/accuracy_test_postcallback.cpp b/src/tests/accuracy_test_postcallback.cpp
index ef03a19..58a2bb3 100644
--- a/src/tests/accuracy_test_postcallback.cpp
+++ b/src/tests/accuracy_test_postcallback.cpp
@@ -1485,17 +1485,17 @@ void pow2_large_1D_4M_in_place_real_to_hermitian_interleaved()
    postcallback_real_to_complex<T, cl_T, fftw_T>( pattern, lengths, batch, input_strides, output_strides, input_distance, output_distance, layout, placeness );
 }

-TEST_F(accuracy_test_postcallback_single, pow2_large_1D_4M_in_place_real_to_hermitian_interleaved)
-{
-   try { pow2_large_1D_4M_in_place_real_to_hermitian_interleaved< float, cl_float, fftwf_complex >(); }
-   catch( const std::exception& err ) { handle_exception(err); }
-}
+//TEST_F(accuracy_test_postcallback_single, pow2_large_1D_4M_in_place_real_to_hermitian_interleaved)
+//{
+   //try { pow2_large_1D_4M_in_place_real_to_hermitian_interleaved< float, cl_float, fftwf_complex >(); }
+   //catch( const std::exception& err ) { handle_exception(err);   }
+//}

-TEST_F(accuracy_test_postcallback_double, pow2_large_1D_4M_in_place_real_to_hermitian_interleaved)
-{
-   try { pow2_large_1D_4M_in_place_real_to_hermitian_interleaved< double, cl_double, fftw_complex >(); }
-   catch( const std::exception& err ) { handle_exception(err); }
-}
+//TEST_F(accuracy_test_postcallback_double, pow2_large_1D_4M_in_place_real_to_hermitian_interleaved)
+//{
+   //try { pow2_large_1D_4M_in_place_real_to_hermitian_interleaved< double, cl_double, fftw_complex >(); }
+   //catch( const std::exception& err ) { handle_exception(err);   }
+//}

 template< class T, class cl_T, class fftw_T >
 void pow2_large_1D_4M_out_of_place_real_to_hermitian_planar()
@@ -1514,17 +1514,17 @@ void pow2_large_1D_4M_out_of_place_real_to_hermitian_planar()
    postcallback_real_to_complex<T, cl_T, fftw_T>( pattern, lengths, batch, input_strides, output_strides, input_distance, output_distance, layout, placeness );
 }

-TEST_F(accuracy_test_postcallback_single, pow2_large_1D_4M_out_of_place_real_to_hermitian_planar)
-{
-   try { pow2_large_1D_4M_out_of_place_real_to_hermitian_planar< float, cl_float, fftwf_complex >(); }
-   catch( const std::exception& err ) { handle_exception(err); }
-}
+//TEST_F(accuracy_test_postcallback_single, pow2_large_1D_4M_out_of_place_real_to_hermitian_planar)
+//{
+   //try { pow2_large_1D_4M_out_of_place_real_to_hermitian_planar< float, cl_float, fftwf_complex >(); }
+   //catch( const std::exception& err ) { handle_exception(err);   }
+//}

-TEST_F(accuracy_test_postcallback_double, pow2_large_1D_4M_out_of_place_real_to_hermitian_planar)
-{
-   try { pow2_large_1D_4M_out_of_place_real_to_hermitian_planar< double, cl_double, fftw_complex >(); }
-   catch( const std::exception& err ) { handle_exception(err); }
-}
+//TEST_F(accuracy_test_postcallback_double, pow2_large_1D_4M_out_of_place_real_to_hermitian_planar)
+//{
+   //try { pow2_large_1D_4M_out_of_place_real_to_hermitian_planar< double, cl_double, fftw_complex >(); }
+   //catch( const std::exception& err ) { handle_exception(err);   }
+//}

 template< class T, class cl_T, class fftw_T >
 void pow3_large_1D_out_of_place_real_to_hermitian_planar()
diff --git a/src/tests/accuracy_test_pow2.cpp b/src/tests/accuracy_test_pow2.cpp
index c3b0a84..a81e02f 100644
--- a/src/tests/accuracy_test_pow2.cpp
+++ b/src/tests/accuracy_test_pow2.cpp
@@ -1793,17 +1793,17 @@ void large_1D_4M_in_place_real_to_hermitian_interleaved()
    real_to_complex<T, cl_T, fftw_T>( pattern, lengths, batch, input_strides, output_strides, input_distance, output_distance, layout, placeness );
 }

-TEST_F(accuracy_test_pow2_single, large_1D_4M_in_place_real_to_hermitian_interleaved)
-{
-   try { large_1D_4M_in_place_real_to_hermitian_interleaved< float, cl_float, fftwf_complex >(); }
-   catch( const std::exception& err ) { handle_exception(err); }
-}
-
-TEST_F(accuracy_test_pow2_double, large_1D_4M_in_place_real_to_hermitian_interleaved)
-{
-   try { large_1D_4M_in_place_real_to_hermitian_interleaved< double, cl_double, fftw_complex >(); }
-   catch( const std::exception& err ) { handle_exception(err); }
-}
+//TEST_F(accuracy_test_pow2_single, large_1D_4M_in_place_real_to_hermitian_interleaved)
+//{
+   //try { large_1D_4M_in_place_real_to_hermitian_interleaved< float, cl_float, fftwf_complex >(); }
+   //catch( const std::exception& err ) { handle_exception(err);   }
+//}
+
+//TEST_F(accuracy_test_pow2_double, large_1D_4M_in_place_real_to_hermitian_interleaved)
+//{
+   //try { large_1D_4M_in_place_real_to_hermitian_interleaved< double, cl_double, fftw_complex >(); }
+   //catch( const std::exception& err ) { handle_exception(err);   }
+//}
 // *****************************************************
 // *****************************************************
 template< class T, class cl_T, class fftw_T >
diff --git a/src/tests/accuracy_test_pow2_precallback.cpp b/src/tests/accuracy_test_pow2_precallback.cpp
index 9bb78bf..4e519a0 100644
--- a/src/tests/accuracy_test_pow2_precallback.cpp
+++ b/src/tests/accuracy_test_pow2_precallback.cpp
@@ -1851,17 +1851,17 @@ void large_1D_4M_in_place_real_to_hermitian_interleaved()
    precallback_real_to_complex<T, cl_T, fftw_T>( pattern, lengths, batch, input_strides, output_strides, input_distance, output_distance, layout, placeness );
 }

-TEST_F(accuracy_test_pow2_precallback_single, large_1D_4M_in_place_real_to_hermitian_interleaved)
-{
-   try { large_1D_4M_in_place_real_to_hermitian_interleaved< float, cl_float, fftwf_complex >(); }
-   catch( const std::exception& err ) { handle_exception(err); }
-}
-
-TEST_F(accuracy_test_pow2_precallback_double, large_1D_4M_in_place_real_to_hermitian_interleaved)
-{
-   try { large_1D_4M_in_place_real_to_hermitian_interleaved< double, cl_double, fftw_complex >(); }
-   catch( const std::exception& err ) { handle_exception(err); }
-}
+//TEST_F(accuracy_test_pow2_precallback_single, large_1D_4M_in_place_real_to_hermitian_interleaved)
+//{
+   //try { large_1D_4M_in_place_real_to_hermitian_interleaved< float, cl_float, fftwf_complex >(); }
+   //catch( const std::exception& err ) { handle_exception(err);   }
+//}
+
+//TEST_F(accuracy_test_pow2_precallback_double, large_1D_4M_in_place_real_to_hermitian_interleaved)
+//{
+   //try { large_1D_4M_in_place_real_to_hermitian_interleaved< double, cl_double, fftw_complex >(); }
+   //catch( const std::exception& err ) { handle_exception(err);   }
+//}
 // *****************************************************
 // *****************************************************
 template< class T, class cl_T, class fftw_T >
-- 
2.8.1

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Comments: 20 (20 by maintainers)

Most upvoted comments

Closing this issue for now … please update with findings