コード例 #1
0
ファイル: local_support.c プロジェクト: ysshao/ALADDIN
void run_benchmark( void *vargs ) {
  struct bench_args_t *args = (struct bench_args_t *)vargs;
#ifdef GEM5_HARNESS
  mapArrayToAccelerator(
      MACHSUITE_SORT_MERGE, "a", (void*)&args->a, sizeof(args->a));
  invokeAcceleratorAndBlock(MACHSUITE_SORT_MERGE);
#else
  ms_mergesort( args->a );
#endif
}
コード例 #2
0
ファイル: sort.c プロジェクト: peterpengwei/HDLRevisit
void workload(TYPE *a) {
#pragma HLS INTERFACE m_axi offset=slave port=a bundle=gmem
#pragma HLS INTERFACE s_axilite port=a bundle=control
#pragma HLS INTERFACE s_axilite port=return bundle=control

	int i, iterCount = SIZE / TILING_SIZE;
	for (i = 0; i < iterCount; i ++) {
		ms_mergesort(a + i * TILING_SIZE);
	}
	return;
}
コード例 #3
0
ファイル: sort.cpp プロジェクト: peterpengwei/HDLRevisit
void compute(int flag, TYPE_INT a[UNROLL_FACTOR][JOBS_PER_UNROLL/WIDTH_FACTOR_INT]) {
	if (flag) {
		int i, m, start = 0, stop = TILING_SIZE;
		for (i = 0; i < UNROLL_FACTOR; i ++) {
#pragma HLS unroll
			ms_mergesort(a[i]);
		}
		/* for (m = JOBS_PER_UNROLL; m < TILING_SIZE; m += m) { */
		/* mergesort_label2: */
		/* 	for(i = start; i < stop; i += m + m) { */
		/* 		merge_reduce(a[0], i, i + m - 1, i + 2 * m - 1); */
		/* 	} */
		/* } */
	}
}