Add Benchmark Sequential

This commit is contained in:
TXuian 2022-12-09 20:19:59 +08:00
parent 753490f880
commit 9112466dce
1 changed files with 11 additions and 4 deletions

View File

@ -64,8 +64,8 @@ BenchmarkPair bmh_list[] = {
float benchmark_time[25]; float benchmark_time[25];
extern benchmark_handle *get_benchmark_list(); // extern benchmark_handle *get_benchmark_list();
extern void add_benchmark_handle(benchmark_handle *head, benchmark_handle *); extern void add_benchmark_handle(benchmark_handle *, benchmark_handle *);
float tmp_diff = 0.0; float tmp_diff = 0.0;
float global_diff = 0.0; float global_diff = 0.0;
@ -82,7 +82,7 @@ void init_benchmark_runset(benchmark_handle *head) {
} }
void organize_result(const benchmark_handle *handle, clock_t start_time, void organize_result(const benchmark_handle *handle, clock_t start_time,
clock_t end_time) { clock_t end_time) {
tmp_diff = (float)(end_time - start_time) / TICK_PER_SECOND; tmp_diff = (float)(end_time - start_time) / (10 * TICK_PER_SECOND);
global_diff += tmp_diff; global_diff += tmp_diff;
int i = 0; int i = 0;
while (bmh_list[i].handle != NULL) { while (bmh_list[i].handle != NULL) {
@ -183,10 +183,12 @@ void *run_benchmark_sequential(void *args) {
volatile int result = cur_handle->handle.benchmark_func->benchmark(); volatile int result = cur_handle->handle.benchmark_func->benchmark();
stop_trigger(&end_time); stop_trigger(&end_time);
printf("[Benchmark] End current task\n");
int correct = cur_handle->handle.benchmark_func->verify_benchmark(result); int correct = cur_handle->handle.benchmark_func->verify_benchmark(result);
if (!correct) { if (!correct) {
printf("[EmBench] Wrong result!.\n"); printf("[EmBench] Wrong result!.\n");
} }
organize_result(cur_handle, start_time, end_time); organize_result(cur_handle, start_time, end_time);
cur_handle = cur_handle->next; cur_handle = cur_handle->next;
@ -199,8 +201,13 @@ static int embenchmark_parallel(void) {
run_benchmark_parallel(NULL); run_benchmark_parallel(NULL);
return 0; return 0;
} }
pthread_t sequential_thread;
static int embenchmark_sequential(void) { static int embenchmark_sequential(void) {
run_benchmark_sequential(NULL); case_attr.schedparam.sched_priority = 30;
case_attr.stacksize = 16384;
PrivTaskCreate(&sequential_thread, &case_attr, run_benchmark_sequential,
NULL);
return 0; return 0;
} }
PRIV_SHELL_CMD_FUNCTION(embenchmark_parallel, run benchmark in parallel, PRIV_SHELL_CMD_FUNCTION(embenchmark_parallel, run benchmark in parallel,