index 61bbfa4612dbcdd8e0328ab6d32c1f0be2fe90af..39a9815954edab4255f95464dc76ced443aa55cc 100644 (file)
#include "blis.h"
+
+#ifdef BLIS_ENABLE_PROFILE
+ profile_data_t *bli_trmm_profile_data;
+#endif
+
void bli_trmm_front( side_t side,
obj_t* alpha,
obj_t* a,
obj_t b_local;
obj_t c_local;
+#ifdef BLIS_ENABLE_PROFILE
+ dim_t mn_side, m_profile, n_profile;
+#endif
+
+#ifdef BLIS_ENABLE_PROFILE
+ m_profile = bli_obj_length( *b );
+ n_profile = bli_obj_width( *b );
+ bli_set_dim_with_side( side, m_profile, n_profile, mn_side );
+#endif
+
// Check parameters.
if ( bli_error_checking_is_enabled() )
bli_trmm_check( side, alpha, a, b );
trmm_thrinfo_t** infos = bli_create_trmm_thrinfo_paths( bli_is_right( side ) );
dim_t n_threads = thread_num_threads( infos[0] );
+#ifdef BLIS_ENABLE_PROFILE
+ bli_trmm_profile_data = bli_profile_data_init(BLIS_MAX_NUM_THREADS*7);
+#endif
// Invoke the internal back-end.
bli_level3_thread_decorator( n_threads,
(level3_int_t) bli_trmm_int,
(void**) infos );
bli_trmm_thrinfo_free_paths( infos, n_threads );
+
+#ifdef BLIS_ENABLE_PROFILE
+ {
+ bli_profile_data_print (bli_trmm_profile_data,
+ m_profile, n_profile, mn_side,
+ bli_obj_execution_datatype( *b ), 1, n_threads);
+
+
+ bli_profile_data_free(bli_trmm_profile_data);
+ }
+
+#endif
}