Пример #1
0
double task_22_cost(starpu_buffer_descr *descr)
{
	uint32_t nx, ny, nz;

	nx = starpu_matrix_get_nx(descr[2].handle);
	ny = starpu_matrix_get_ny(descr[2].handle);
	nz = starpu_matrix_get_ny(descr[0].handle);

	double cost = ((nx*ny*nz)/4110.0);

	return PERTURBATE(cost);
}
double task_22_cost(struct starpu_task *task, unsigned nimpl)
{
	uint32_t nx, ny, nz;

	nx = starpu_matrix_get_nx(task->handles[2]);
	ny = starpu_matrix_get_ny(task->handles[2]);
	nz = starpu_matrix_get_ny(task->handles[0]);

	double cost = ((nx*ny*nz)/4110.0);

	return PERTURBATE(cost);
}
Пример #3
0
double task_22_cost_cpu(starpu_buffer_descr *descr)
{
	uint32_t nx, ny, nz;

	nx = starpu_matrix_get_nx(descr[2].handle);
	ny = starpu_matrix_get_ny(descr[2].handle);
	nz = starpu_matrix_get_ny(descr[0].handle);

	double cost = ((nx*ny*nz)/4203.0175);

//	printf("CPU task 22 ; predict %e\n", cost);
	return PERTURBATE(cost);
}
double task_22_cost_cpu(struct starpu_task *task, struct starpu_perfmodel_arch* arch, unsigned nimpl)
{
	uint32_t nx, ny, nz;

	nx = starpu_matrix_get_nx(task->handles[2]);
	ny = starpu_matrix_get_ny(task->handles[2]);
	nz = starpu_matrix_get_ny(task->handles[0]);

	double cost = ((nx*ny*nz)/4203.0175);

/*	printf("CPU task 22 ; predict %e\n", cost); */
	return PERTURBATE(cost);
}
Пример #5
0
double gemm_cost(starpu_buffer_descr *descr)
{
	/* C = A * B */
	uint32_t nxC, nyC, nxA;


	nxC = starpu_matrix_get_nx(descr[2].handle);
	nyC = starpu_matrix_get_ny(descr[2].handle);
	nxA = starpu_matrix_get_nx(descr[0].handle);

//	printf("nxC %d nxC %d nxA %d\n", nxC, nyC, nxA);

	double cost = ((double)nxC)*((double)nyC)*((double)nxA/1000.0f/4.11f);

//	printf("cost %e \n", cost);

	return cost;
}