mirror of
https://github.com/amd/blis.git
synced 2026-04-20 07:38:53 +00:00
Added Fortran APIs for some thread functions.
Details: - Defined Fortran-77 compatible APIs for bli_thread_set_num_threads() and bli_thread_set_ways(). These wrappers are defined in frame/compat/blis/thread/b77_thread.c. Thanks to Kay Dewhurst for suggesting these new interfaces. - Added missing prototype for bli_thread_set_ways() in bli_thread.h and removed prototypes for non-existent functions bli_thread_set_*_nt(). - CREDITS file update.
This commit is contained in:
1
CREDITS
1
CREDITS
@@ -16,6 +16,7 @@ but many others have contributed code and feedback, including
|
||||
Vernon Austel (IBM, T.J. Watson Research Center)
|
||||
Jed Brown @jedbrown (Argonne National Laboratory)
|
||||
Robin Christ @robinchrist
|
||||
Kay Dewhurst @jkd2016 (Max Planck Institute, Halle, Germany)
|
||||
Johannes Dieterich @iotamudelta
|
||||
Krzysztof Drewniak @krzysz00
|
||||
Victor Eijkhout @VictorEijkhout (Texas Advanced Computing Center)
|
||||
|
||||
@@ -174,6 +174,10 @@
|
||||
#include "bla_trmm_check.h"
|
||||
#include "bla_trsm_check.h"
|
||||
|
||||
// -- Fortran-compatible APIs to BLIS functions --
|
||||
|
||||
#include "b77_thread.h"
|
||||
|
||||
|
||||
#endif // BLIS_ENABLE_BLAS
|
||||
#endif // BLIS_VIA_BLASTEST
|
||||
|
||||
93
frame/compat/blis/thread/b77_thread.c
Normal file
93
frame/compat/blis/thread/b77_thread.c
Normal file
@@ -0,0 +1,93 @@
|
||||
/*
|
||||
|
||||
BLIS
|
||||
An object-based framework for developing high-performance BLAS-like
|
||||
libraries.
|
||||
|
||||
Copyright (C) 2018, The University of Texas at Austin
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
- Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
- Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
- Neither the name of The University of Texas at Austin nor the names
|
||||
of its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
*/
|
||||
|
||||
#include "blis.h"
|
||||
|
||||
|
||||
//
|
||||
// Define Fortran-compatible BLIS interfaces.
|
||||
//
|
||||
|
||||
void PASTEF770(bli_thread_set_ways)
|
||||
(
|
||||
const f77_int* jc,
|
||||
const f77_int* pc,
|
||||
const f77_int* ic,
|
||||
const f77_int* jr,
|
||||
const f77_int* ir
|
||||
)
|
||||
{
|
||||
dim_t jc0 = *jc;
|
||||
dim_t pc0 = *pc;
|
||||
dim_t ic0 = *ic;
|
||||
dim_t jr0 = *jr;
|
||||
dim_t ir0 = *ir;
|
||||
|
||||
// Initialize BLIS.
|
||||
bli_init_auto();
|
||||
|
||||
// Convert/typecast negative values to zero.
|
||||
//bli_convert_blas_dim1( *jc, jc0 );
|
||||
//bli_convert_blas_dim1( *pc, pc0 );
|
||||
//bli_convert_blas_dim1( *ic, ic0 );
|
||||
//bli_convert_blas_dim1( *jr, jr0 );
|
||||
//bli_convert_blas_dim1( *ir, ir0 );
|
||||
|
||||
// Call the BLIS function.
|
||||
bli_thread_set_ways( jc0, pc0, ic0, jr0, ir0 );
|
||||
|
||||
// Finalize BLIS.
|
||||
bli_finalize_auto();
|
||||
}
|
||||
|
||||
void PASTEF770(bli_thread_set_num_threads)
|
||||
(
|
||||
const f77_int* nt
|
||||
)
|
||||
{
|
||||
dim_t nt0 = *nt;
|
||||
|
||||
// Initialize BLIS.
|
||||
bli_init_auto();
|
||||
|
||||
// Convert/typecast negative values to zero.
|
||||
//bli_convert_blas_dim1( *nt, nt0 );
|
||||
|
||||
// Call the BLIS function.
|
||||
bli_thread_set_num_threads( nt0 );
|
||||
|
||||
// Finalize BLIS.
|
||||
bli_finalize_auto();
|
||||
}
|
||||
|
||||
53
frame/compat/blis/thread/b77_thread.h
Normal file
53
frame/compat/blis/thread/b77_thread.h
Normal file
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
|
||||
BLIS
|
||||
An object-based framework for developing high-performance BLAS-like
|
||||
libraries.
|
||||
|
||||
Copyright (C) 2014, The University of Texas at Austin
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
- Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
- Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
- Neither the name of The University of Texas at Austin nor the names
|
||||
of its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
*/
|
||||
|
||||
|
||||
//
|
||||
// Prototype Fortran-compatible BLIS interfaces.
|
||||
//
|
||||
|
||||
void PASTEF770(bli_thread_set_ways)
|
||||
(
|
||||
const f77_int* jc,
|
||||
const f77_int* pc,
|
||||
const f77_int* ic,
|
||||
const f77_int* jr,
|
||||
const f77_int* ir
|
||||
);
|
||||
|
||||
void PASTEF770(bli_thread_set_num_threads)
|
||||
(
|
||||
const f77_int* nt
|
||||
);
|
||||
|
||||
@@ -204,11 +204,7 @@ dim_t bli_thread_get_jr_nt( void );
|
||||
dim_t bli_thread_get_ir_nt( void );
|
||||
dim_t bli_thread_get_num_threads( void );
|
||||
|
||||
void bli_thread_set_jc_nt( dim_t value );
|
||||
void bli_thread_set_pc_nt( dim_t value );
|
||||
void bli_thread_set_ic_nt( dim_t value );
|
||||
void bli_thread_set_jr_nt( dim_t value );
|
||||
void bli_thread_set_ir_nt( dim_t value );
|
||||
void bli_thread_set_ways( dim_t jc, dim_t pc, dim_t ic, dim_t jr, dim_t ir );
|
||||
void bli_thread_set_num_threads( dim_t value );
|
||||
|
||||
void bli_thread_init_rntm( rntm_t* rntm );
|
||||
|
||||
Reference in New Issue
Block a user