Browse Source

Add a --enable-fast option where the STARPU_ASSERT are ignored (by default,
they are enabled).

Cédric Augonnet 15 years ago
parent
commit
0636d338aa

+ 11 - 0
configure.ac

@@ -248,6 +248,17 @@ else
 fi
 CFLAGS+=" -gdwarf-2 -g3 "
 
+AC_MSG_CHECKING(whether extra checks should be performed)
+AC_ARG_ENABLE(fast, [AS_HELP_STRING([--enable-fast],
+			[enforce assertions])],
+			enable_fast=$enableval, enable_fast=no)
+AC_MSG_RESULT($enable_fast)
+if test x$enable_fast = xyes; then
+	AC_DEFINE(STARPU_NO_ASSERT, [1], [disable assertions])
+fi
+
+
+
 AC_MSG_CHECKING(whether debug messages should be displayed)
 AC_ARG_ENABLE(verbose, [AS_HELP_STRING([--enable-verbose],
 			[display verbose debug messages])],

+ 3 - 3
examples/cholesky/dw_cholesky_kernels.c

@@ -64,7 +64,7 @@ static inline void chol_common_core_codelet_update_u22(void *descr[], int s, __a
 			break;
 #endif
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 	}
 }
@@ -111,7 +111,7 @@ static inline void chol_common_codelet_update_u21(void *descr[], int s, __attrib
 			break;
 #endif
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 	}
 }
@@ -194,7 +194,7 @@ static inline void chol_common_codelet_update_u11(void *descr[], int s, __attrib
 			break;
 #endif
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 	}
 }

+ 7 - 7
examples/heat/dw_factolu_kernels.c

@@ -133,14 +133,14 @@ static inline void dw_common_core_codelet_update_u22(void *descr[], int s, __att
 					right, ld12, 1.0f, center, ld22);
 			status = cublasGetError();
 			if (status != CUBLAS_STATUS_SUCCESS)
-				STARPU_ASSERT(0);
+				STARPU_ABORT();
 
 			cudaThreadSynchronize();
 
 			break;
 #endif
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 	}
 }
@@ -196,14 +196,14 @@ static inline void dw_common_codelet_update_u12(void *descr[], int s, __attribut
 					1.0f, sub11, ld11, sub12, ld12);
 			status = cublasGetError();
 			if (status != CUBLAS_STATUS_SUCCESS)
-				STARPU_ASSERT(0);
+				STARPU_ABORT();
 
 			cudaThreadSynchronize();
 
 			break;
 #endif
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 	}
 }
@@ -256,14 +256,14 @@ static inline void dw_common_codelet_update_u21(void *descr[], int s, __attribut
 			cublasStrsm('R', 'U', 'N', 'U', ny21, nx21, 1.0f, sub11, ld11, sub21, ld21);
 			status = cublasGetError();
 			if (status != CUBLAS_STATUS_SUCCESS)
-				STARPU_ASSERT(0);
+				STARPU_ABORT();
 
 			cudaThreadSynchronize();
 
 			break;
 #endif
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 	}
 }
@@ -357,7 +357,7 @@ static inline void dw_common_codelet_update_u11(void *descr[], int s, __attribut
 			break;
 #endif
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 	}
 }

+ 1 - 1
examples/heat/heat.c

@@ -744,7 +744,7 @@ int main(int argc, char **argv)
 				dw_factoLU_grain(A, newsize, newsize, nblocks, nbigblocks);
 				break;
 			default:
-				STARPU_ASSERT(0);
+				STARPU_ABORT();
 		}
 
 		display_stat_heat();

+ 9 - 9
examples/lu/xlu_kernels.c

@@ -56,7 +56,7 @@ static inline void STARPU_LU(common_u22)(void *descr[],
 
 			status = cublasGetError();
 			if (STARPU_UNLIKELY(status != CUBLAS_STATUS_SUCCESS))
-				STARPU_ASSERT(0);
+				STARPU_ABORT();
 
 			if (STARPU_UNLIKELY((cures = cudaThreadSynchronize()) != cudaSuccess))
 				CUDA_REPORT_ERROR(cures);
@@ -64,7 +64,7 @@ static inline void STARPU_LU(common_u22)(void *descr[],
 			break;
 #endif
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 	}
 }
@@ -118,7 +118,7 @@ static inline void STARPU_LU(common_u12)(void *descr[],
 
 			status = cublasGetError();
 			if (STARPU_UNLIKELY(status != CUBLAS_STATUS_SUCCESS))
-				STARPU_ASSERT(0);
+				STARPU_ABORT();
 
 			if (STARPU_UNLIKELY((cures = cudaThreadSynchronize()) != cudaSuccess))
 				CUDA_REPORT_ERROR(cures);
@@ -126,7 +126,7 @@ static inline void STARPU_LU(common_u12)(void *descr[],
 			break;
 #endif
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 	}
 }
@@ -179,14 +179,14 @@ static inline void STARPU_LU(common_u21)(void *descr[],
 
 			status = cublasGetError();
 			if (status != CUBLAS_STATUS_SUCCESS)
-				STARPU_ASSERT(0);
+				STARPU_ABORT();
 
 			cudaThreadSynchronize();
 
 			break;
 #endif
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 	}
 }
@@ -258,7 +258,7 @@ static inline void STARPU_LU(common_u11)(void *descr[],
 			break;
 #endif
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 	}
 }
@@ -373,7 +373,7 @@ static inline void STARPU_LU(common_u11_pivot)(void *descr[],
 			break;
 #endif
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 	}
 }
@@ -437,7 +437,7 @@ static inline void STARPU_LU(common_pivot)(void *descr[],
 			break;
 #endif
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 	}
 }

+ 1 - 1
examples/mult/dw_mult.c

@@ -125,7 +125,7 @@ static void init_problem_data(void)
 	else {
 #ifdef NORANDOM
 		srand(2008);
-		STARPU_ASSERT(0);
+		STARPU_ABORT();
 #endif
 		for (j=0; j < ydim; j++) {
 			for (i=0; i < zdim; i++) {

+ 1 - 1
examples/mult/sgemm_kernels.c

@@ -51,7 +51,7 @@ void cublas_mult(void *descr[], __attribute__((unused)) void *arg)
 	cublasStatus st;
 	st = cublasGetError();
 	if (st != CUBLAS_STATUS_SUCCESS)
-		STARPU_ASSERT(0);
+		STARPU_ABORT();
 
 	cudaThreadSynchronize();
 

+ 1 - 1
examples/mult/xgemm_kernels.c

@@ -51,7 +51,7 @@ void STARPU_GEMM(cublas_mult)(void *descr[], __attribute__((unused)) void *arg)
 	cublasStatus st;
 	st = cublasGetError();
 	if (st != CUBLAS_STATUS_SUCCESS)
-		STARPU_ASSERT(0);
+		STARPU_ABORT();
 
 	cudaThreadSynchronize();
 

+ 1 - 1
examples/spmv/dw_block_spmv_kernels.c

@@ -42,7 +42,7 @@ static inline void common_block_spmv(void *descr[], int s, __attribute__((unused
 			break;
 #endif
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 	}
 }

+ 5 - 5
examples/starpufft/starpufftx.c

@@ -131,7 +131,7 @@ check_dims(STARPUFFT(plan) plan)
 	for (dim = 0; dim < plan->dim; dim++)
 		if (plan->n[dim] & (plan->n[dim]-1)) {
 			fprintf(stderr,"can't cope with non-power-of-2\n");
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 		}
 }
 
@@ -186,7 +186,7 @@ STARPUFFT(start)(STARPUFFT(plan) plan, void *_in, void *_out)
 				tag = STARPUFFT(start1dC2C)(plan);
 				break;
 			default:
-				STARPU_ASSERT(0);
+				STARPU_ABORT();
 				break;
 			}
 			break;
@@ -198,7 +198,7 @@ STARPUFFT(start)(STARPUFFT(plan) plan, void *_in, void *_out)
 			tag = STARPUFFT(start2dC2C)(plan);
 			break;
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 	}
 	return tag;
@@ -250,7 +250,7 @@ STARPUFFT(destroy_plan)(STARPUFFT(plan) plan)
 #endif
 			break;
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 		}
 	}
@@ -299,7 +299,7 @@ STARPUFFT(destroy_plan)(STARPUFFT(plan) plan)
 			STARPUFFT(free_2d_tags)(plan);
 			break;
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 	}
 

+ 1 - 1
examples/starpufft/starpufftx1d.c

@@ -423,7 +423,7 @@ STARPUFFT(plan_dft_1d)(int n, int sign, unsigned flags)
 #endif
 			break;
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 		}
 	}

+ 1 - 1
examples/starpufft/starpufftx2d.c

@@ -482,7 +482,7 @@ STARPUFFT(plan_dft_2d)(int n, int m, int sign, unsigned flags)
 #endif
 			break;
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 		}
 	}

+ 4 - 4
examples/strassen/strassen.c

@@ -185,7 +185,7 @@ static void compute_add_sub_op(starpu_data_handle A1, operation op,
 			task->cl = &cl_self_sub;
 			break;
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 	}
 
 	starpu_submit_task(task);
@@ -229,7 +229,7 @@ void phase_3_callback_function(void *_arg)
 				free_tmp_matrix(iter->E7);
 				break;
 			default:
-				STARPU_ASSERT(0);
+				STARPU_ABORT();
 		}
 	}
 
@@ -321,7 +321,7 @@ void phase_2_callback_function(void *_arg)
 			compute_add_sub_op(iter->E7, SELFSUB, NULL, iter->C22, phase_3_callback_function, arg2);
 			break;
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 	}
 }
 
@@ -376,7 +376,7 @@ static void _strassen_phase_2(strassen_iter_state_t *iter, unsigned i)
 			C = iter->E7;
 			break;
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 	}
 
 	STARPU_ASSERT(A);

+ 3 - 3
examples/strassen/strassen_kernels.c

@@ -46,7 +46,7 @@ static void mult_common_codelet(void *descr[], int s, __attribute__((unused))  v
 			break;
 #endif
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 	}
 }
@@ -107,7 +107,7 @@ static void add_sub_common_codelet(void *descr[], int s, __attribute__((unused))
 			break;
 #endif
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 	}
 }
@@ -173,7 +173,7 @@ static void self_add_sub_common_codelet(void *descr[], int s, __attribute__((unu
 			break;
 #endif
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 	}
 }

+ 3 - 3
examples/strassen2/strassen2_kernels.c

@@ -85,7 +85,7 @@ static void mult_common_codelet(void *descr[], int s, __attribute__((unused))  v
 			break;
 #endif
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 	}
 }
@@ -156,7 +156,7 @@ static void add_sub_common_codelet(void *descr[], int s, __attribute__((unused))
 			break;
 #endif
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 	}
 }
@@ -229,7 +229,7 @@ static void self_add_sub_common_codelet(void *descr[], int s, __attribute__((unu
 			break;
 #endif
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 	}
 }

+ 1 - 1
examples/tag_example/tag_example.c

@@ -181,7 +181,7 @@ static void express_deps(unsigned i, unsigned j, unsigned iter)
 		else 
 		{
 			/* (i,j+1) does not exist */
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 		}
 	}
 }

+ 6 - 0
include/starpu-util.h

@@ -36,7 +36,13 @@ extern "C" {
 #define STARPU_MIN(a,b)	((a)<(b)?(a):(b))
 #define STARPU_MAX(a,b)	((a)<(b)?(b):(a))
 
+#ifdef STARPU_NO_ASSERT
+#define STARPU_ASSERT(x)	do {} while(0);
+#else
 #define STARPU_ASSERT(x)	assert(x)
+#endif
+
+#define STARPU_ABORT()		abort()
 
 #define STARPU_UNLIKELY(expr)          (__builtin_expect(!!(expr),0))
 #define STARPU_LIKELY(expr)            (__builtin_expect(!!(expr),1))

+ 1 - 0
include/starpu_config.h.in

@@ -25,6 +25,7 @@
 #undef HAVE_SYNC_FETCH_AND_ADD
 
 #undef MODEL_DEBUG
+#undef STARPU_NO_ASSERT
 
 #undef HAVE_FFTW
 #undef HAVE_FFTWF

+ 1 - 1
src/common/fxt.c

@@ -69,7 +69,7 @@ void start_fxt_profiling(void)
 
 	if(fut_setup(PROF_BUFFER_SIZE, FUT_KEYMASKALL, threadid) < 0) {
 		perror("fut_setup");
-		STARPU_ASSERT(0);
+		STARPU_ABORT();
 	}
 
 	fut_keychange(FUT_ENABLE, FUT_KEYMASKALL, threadid);

+ 1 - 1
src/core/mechanisms/queues.c

@@ -56,7 +56,7 @@ void setup_queues(void (*init_queue_design)(void),
 				workerarg->jobq->alpha = GORDON_ALPHA;
 				break;
 			default:
-				STARPU_ASSERT(0);
+				STARPU_ABORT();
 		}
 		
 		memory_node_attach_queue(workerarg->jobq, workerarg->memory_node);

+ 1 - 1
src/core/perfmodel/perfmodel.c

@@ -104,7 +104,7 @@ double job_expected_length(uint32_t who, struct job_s *j, enum starpu_perf_archt
 				return regression_based_job_expected_length(model, arch, j);
 
 			default:
-				STARPU_ASSERT(0);
+				STARPU_ABORT();
 		};
 	}
 

+ 2 - 2
src/core/perfmodel/perfmodel_bus.c

@@ -183,7 +183,7 @@ static void write_bus_latency_file_content(void)
 	if (!f)
 	{
 		perror("fopen");
-		STARPU_ASSERT(0);
+		STARPU_ABORT();
 	}
 
 	for (src = 0; src < MAXNODES; src++)
@@ -256,7 +256,7 @@ static void load_bus_bandwith_file_content(void)
 	if (!f)
 	{
 		perror("fopen");
-		STARPU_ASSERT(0);
+		STARPU_ABORT();
 	}
 
 	for (src = 0; src < MAXNODES; src++)

+ 4 - 4
src/core/perfmodel/perfmodel_history.c

@@ -341,14 +341,14 @@ static void load_history_based_model(struct starpu_perfmodel_t *model, unsigned
 	if (STARPU_UNLIKELY(res))
 	{
 		perror("pthread_rwlock_init failed");
-		STARPU_ASSERT(0);
+		STARPU_ABORT();
 	}
 
 	res = pthread_rwlock_wrlock(&model->model_rwlock);
 	if (STARPU_UNLIKELY(res))
 	{
 		perror("pthread_rwlock_wrlock failed");
-		STARPU_ASSERT(0);
+		STARPU_ABORT();
 	}
 
 	/* make sure the performance model directory exists (or create it) */
@@ -405,7 +405,7 @@ static void load_history_based_model(struct starpu_perfmodel_t *model, unsigned
 	if (STARPU_UNLIKELY(res))
 	{
 		perror("pthread_rwlock_unlock");
-		STARPU_ASSERT(0);
+		STARPU_ABORT();
 	}
 }
 
@@ -455,7 +455,7 @@ void starpu_perfmodel_get_arch_name(enum starpu_perf_archtype arch, char *archna
 	}
 	else
 	{
-		STARPU_ASSERT(0);
+		STARPU_ABORT();
 	}
 }
 

+ 3 - 3
src/core/topology.c

@@ -355,7 +355,7 @@ void bind_thread_on_cpu(struct machine_config_s *config __attribute__((unused)),
 	if (ret)
 	{
 		perror("binding thread");
-		STARPU_ASSERT(0);
+		STARPU_ABORT();
 	}
 
 #elif defined(HAVE_PTHREAD_SETAFFINITY_NP)
@@ -370,7 +370,7 @@ void bind_thread_on_cpu(struct machine_config_s *config __attribute__((unused)),
 	if (ret)
 	{
 		perror("binding thread");
-		STARPU_ASSERT(0);
+		STARPU_ABORT();
 	}
 
 #else
@@ -417,7 +417,7 @@ static void init_workers_binding(struct machine_config_s *config)
 				break;
 #endif
 			default:
-				STARPU_ASSERT(0);
+				STARPU_ABORT();
 		}
 
 		if (is_a_set_of_accelerators) {

+ 3 - 3
src/core/workers.c

@@ -135,7 +135,7 @@ static void init_workers(struct machine_config_s *config)
 				break;
 #endif
 			default:
-				STARPU_ASSERT(0);
+				STARPU_ABORT();
 		}
 	}
 
@@ -158,7 +158,7 @@ static void init_workers(struct machine_config_s *config)
 				break;
 #endif
 			default:
-				STARPU_ASSERT(0);
+				STARPU_ABORT();
 		}
 	}
 
@@ -179,7 +179,7 @@ int starpu_init(struct starpu_conf *user_conf)
 	int ret;
 
 	srand(2008);
-
+	
 #ifdef USE_FXT
 	start_fxt_profiling();
 #endif

+ 7 - 7
src/datawizard/copy-driver.c

@@ -134,12 +134,12 @@ static int copy_data_1_to_1_generic(starpu_data_handle handle, uint32_t src_node
 				else
 				{
 					/* we should not have a blocking call ! */
-					STARPU_ASSERT(0);
+					STARPU_ABORT();
 				}
 				break;
 #endif
 			case SPU_LS:
-				STARPU_ASSERT(0); // TODO
+				STARPU_ABORT(); // TODO
 				break;
 			case UNUSED:
 				printf("error node %u UNUSED\n", src_node);
@@ -168,17 +168,17 @@ static int copy_data_1_to_1_generic(starpu_data_handle handle, uint32_t src_node
 				break;
 			case CUDA_RAM:
 			case SPU_LS:
-				STARPU_ASSERT(0); // TODO 
+				STARPU_ABORT(); // TODO 
 				break;
 			case UNUSED:
 			default:
-				STARPU_ASSERT(0);
+				STARPU_ABORT();
 				break;
 		}
 		break;
 #endif
 	case SPU_LS:
-		STARPU_ASSERT(0); // TODO
+		STARPU_ABORT(); // TODO
 		break;
 	case UNUSED:
 	default:
@@ -270,7 +270,7 @@ void driver_wait_request_completion(starpu_async_channel *async_channel __attrib
 #endif
 		case RAM:
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 	}
 }
 
@@ -296,7 +296,7 @@ unsigned driver_test_request_completion(starpu_async_channel *async_channel __at
 #endif
 		case RAM:
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			success = 0;
 	}
 

+ 1 - 1
src/datawizard/interfaces/block_interface.c

@@ -77,7 +77,7 @@ struct data_interface_ops_t interface_block_ops = {
 int convert_block_to_gordon(void *interface, uint64_t *ptr, gordon_strideSize_t *ss) 
 {
 	/* TODO */
-	STARPU_ASSERT(0);
+	STARPU_ABORT();
 
 	return 0;
 }

+ 1 - 1
src/datawizard/memalloc.c

@@ -170,7 +170,7 @@ static void transfer_subtree_to_node(starpu_data_handle handle, unsigned src_nod
 			/* nothing to be done */
 			break;
 		default:
-			STARPU_ASSERT(0);
+			STARPU_ABORT();
 			break;
 		}
 	}

+ 1 - 1
src/drivers/cuda/driver_cuda.c

@@ -255,7 +255,7 @@ void *cuda_worker(void *arg)
 				case STARPU_TRYAGAIN:
 					fprintf(stderr, "ouch, put the codelet %p back ... \n", j);
 					push_task(j);
-					STARPU_ASSERT(0);
+					STARPU_ABORT();
 					continue;
 				default:
 					assert(0);