|
@@ -92,6 +92,14 @@ module fstarpu_mod
|
|
|
type(c_ptr), bind(C) :: FSTARPU_CUDA_ASYNC
|
|
|
type(c_ptr), bind(C) :: FSTARPU_OPENCL_ASYNC
|
|
|
|
|
|
+ !type(c_ptr), bind(C) :: FSTARPU_PER_WORKER
|
|
|
+ !type(c_ptr), bind(C) :: FSTARPU_PER_ARCH
|
|
|
+ !type(c_ptr), bind(C) :: FSTARPU_PER_COMMON
|
|
|
+ type(c_ptr), bind(C) :: FSTARPU_HISTORY_BASED
|
|
|
+ type(c_ptr), bind(C) :: FSTARPU_REGRESSION_BASED
|
|
|
+ type(c_ptr), bind(C) :: FSTARPU_NL_REGRESSION_BASED
|
|
|
+ type(c_ptr), bind(C) :: FSTARPU_MULTIPLE_REGRESSION_BASED
|
|
|
+
|
|
|
! (some) portable iso_c_binding types
|
|
|
type(c_ptr), bind(C) :: FSTARPU_SZ_C_DOUBLE
|
|
|
type(c_ptr), bind(C) :: FSTARPU_SZ_C_FLOAT
|
|
@@ -649,6 +657,18 @@ module fstarpu_mod
|
|
|
character(c_char), intent(in) :: cl_name
|
|
|
end subroutine fstarpu_codelet_set_name
|
|
|
|
|
|
+ subroutine fstarpu_codelet_set_model (cl, cl_perfmodel) bind(C)
|
|
|
+ use iso_c_binding, only: c_ptr
|
|
|
+ type(c_ptr), value, intent(in) :: cl
|
|
|
+ type(c_ptr), value, intent(in) :: cl_perfmodel
|
|
|
+ end subroutine fstarpu_codelet_set_model
|
|
|
+
|
|
|
+ subroutine fstarpu_codelet_set_energy_model (cl, cl_perfmodel) bind(C)
|
|
|
+ use iso_c_binding, only: c_ptr
|
|
|
+ type(c_ptr), value, intent(in) :: cl
|
|
|
+ type(c_ptr), value, intent(in) :: cl_perfmodel
|
|
|
+ end subroutine fstarpu_codelet_set_energy_model
|
|
|
+
|
|
|
subroutine fstarpu_codelet_add_cpu_func (cl, f_ptr) bind(C)
|
|
|
use iso_c_binding, only: c_ptr, c_funptr
|
|
|
type(c_ptr), value, intent(in) :: cl
|
|
@@ -714,6 +734,28 @@ module fstarpu_mod
|
|
|
type(c_ptr), value, intent(in) :: where ! C function expects an intptr_t
|
|
|
end subroutine fstarpu_codelet_set_where
|
|
|
|
|
|
+ function fstarpu_perfmodel_allocate () bind(C)
|
|
|
+ use iso_c_binding, only: c_ptr
|
|
|
+ type(c_ptr) :: fstarpu_perfmodel_allocate
|
|
|
+ end function fstarpu_perfmodel_allocate
|
|
|
+
|
|
|
+ subroutine fstarpu_perfmodel_free (model) bind(C)
|
|
|
+ use iso_c_binding, only: c_ptr
|
|
|
+ type(c_ptr), value, intent(in) :: model
|
|
|
+ end subroutine fstarpu_perfmodel_free
|
|
|
+
|
|
|
+ subroutine fstarpu_perfmodel_set_symbol (model, model_symbol) bind(C)
|
|
|
+ use iso_c_binding, only: c_ptr, c_char
|
|
|
+ type(c_ptr), value, intent(in) :: model
|
|
|
+ character(c_char), intent(in) :: model_symbol
|
|
|
+ end subroutine fstarpu_perfmodel_set_symbol
|
|
|
+
|
|
|
+ subroutine fstarpu_perfmodel_set_type (model, type) bind(C)
|
|
|
+ use iso_c_binding, only: c_ptr
|
|
|
+ type(c_ptr), value, intent(in) :: model
|
|
|
+ type(c_ptr), value, intent(in) :: type ! C function expects an intptr_t
|
|
|
+ end subroutine fstarpu_perfmodel_set_type
|
|
|
+
|
|
|
! == starpu_data_interface.h ==
|
|
|
|
|
|
! uintptr_t starpu_malloc_on_node_flags(unsigned dst_node, size_t size, int flags);
|
|
@@ -2434,6 +2476,21 @@ module fstarpu_mod
|
|
|
FSTARPU_OPENCL_ASYNC = &
|
|
|
fstarpu_get_constant(C_CHAR_"FSTARPU_OPENCL_ASYNC"//C_NULL_CHAR)
|
|
|
|
|
|
+ !FSTARPU_PER_WORKER = &
|
|
|
+ ! fstarpu_get_constant(C_CHAR_"FSTARPU_PER_WORKER"//C_NULL_CHAR)
|
|
|
+ !FSTARPU_PER_ARCH = &
|
|
|
+ ! fstarpu_get_constant(C_CHAR_"FSTARPU_PER_ARCH"//C_NULL_CHAR)
|
|
|
+ !FSTARPU_PER_COMMON = &
|
|
|
+ ! fstarpu_get_constant(C_CHAR_"FSTARPU_PER_COMMON"//C_NULL_CHAR)
|
|
|
+ FSTARPU_HISTORY_BASED = &
|
|
|
+ fstarpu_get_constant(C_CHAR_"FSTARPU_HISTORY_BASED"//C_NULL_CHAR)
|
|
|
+ FSTARPU_REGRESSION_BASED = &
|
|
|
+ fstarpu_get_constant(C_CHAR_"FSTARPU_REGRESSION_BASED"//C_NULL_CHAR)
|
|
|
+ FSTARPU_NL_REGRESSION_BASED = &
|
|
|
+ fstarpu_get_constant(C_CHAR_"FSTARPU_NL_REGRESSION_BASED"//C_NULL_CHAR)
|
|
|
+ FSTARPU_MULTIPLE_REGRESSION_BASED = &
|
|
|
+ fstarpu_get_constant(C_CHAR_"FSTARPU_MULTIPLE_REGRESSION_BASED"//C_NULL_CHAR)
|
|
|
+
|
|
|
! Initialize size constants as 'c_ptr'
|
|
|
FSTARPU_SZ_C_DOUBLE = sz_to_p(c_sizeof(FSTARPU_SZ_C_DOUBLE_dummy))
|
|
|
FSTARPU_SZ_C_FLOAT = sz_to_p(c_sizeof(FSTARPU_SZ_C_FLOAT_dummy))
|