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)
Closing this issue for now … please update with findings