Moved device code to mimic cuda header behavior
1. All fp32, fp64 math device/host functions should be in math_functions.h/.cpp 2. All fp32, fp64 fast math intrinsics for device/host functions should be in device_functions.h/.cpp 3. All the device code implementations should be in device_util.h/.cpp 4. Hence, made changes appropriately by moving code and creating new header files 5. Added math_functions.cpp/.h 6. Changed #ifndef signature to make sure no conflicts between headers with same names in hip/hip_runtime.h and hip/hcc_detail/hip_runtime.h 7. Changed tests to fit the code changes, making them to include appropriate headers 8. Added math_functions.cpp to CMakeLists.txt 9. Some of the tests are still broken, mostly host math functions will fix them in next commit 10. TODO: FIX compilation issues for host math functions Change-Id: I7a17637d7e294a7d224ffba932c1a08668febd26
This commit is contained in:
@@ -19,7 +19,8 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
#include "hip/hip_runtime.h"
|
||||
#include <hip/hip_runtime.h>
|
||||
#include <hip/device_functions.h>
|
||||
#include "test_common.h"
|
||||
|
||||
#pragma GCC diagnostic ignored "-Wall"
|
||||
@@ -30,44 +31,44 @@ __device__ void single_precision_intrinsics()
|
||||
float fX, fY;
|
||||
|
||||
__cosf(0.0f);
|
||||
//__exp10f(0.0f);
|
||||
__exp10f(0.0f);
|
||||
__expf(0.0f);
|
||||
//__fadd_rd(0.0f, 1.0f);
|
||||
//__fadd_rn(0.0f, 1.0f);
|
||||
//__fadd_ru(0.0f, 1.0f);
|
||||
//__fadd_rz(0.0f, 1.0f);
|
||||
//__fdiv_rd(4.0f, 2.0f);
|
||||
//__fdiv_rn(4.0f, 2.0f);
|
||||
//__fdiv_ru(4.0f, 2.0f);
|
||||
//__fdiv_rz(4.0f, 2.0f);
|
||||
//__fdividef(4.0f, 2.0f);
|
||||
//__fmaf_rd(1.0f, 2.0f, 3.0f);
|
||||
//__fmaf_rn(1.0f, 2.0f, 3.0f);
|
||||
//__fmaf_ru(1.0f, 2.0f, 3.0f);
|
||||
//__fmaf_rz(1.0f, 2.0f, 3.0f);
|
||||
//__fmul_rd(1.0f, 2.0f);
|
||||
//__fmul_rn(1.0f, 2.0f);
|
||||
//__fmul_ru(1.0f, 2.0f);
|
||||
//__fmul_rz(1.0f, 2.0f);
|
||||
//__frcp_rd(2.0f);
|
||||
//__frcp_rn(2.0f);
|
||||
//__frcp_ru(2.0f);
|
||||
//__frcp_rz(2.0f);
|
||||
__fadd_rd(0.0f, 1.0f);
|
||||
__fadd_rn(0.0f, 1.0f);
|
||||
__fadd_ru(0.0f, 1.0f);
|
||||
__fadd_rz(0.0f, 1.0f);
|
||||
__fdiv_rd(4.0f, 2.0f);
|
||||
__fdiv_rn(4.0f, 2.0f);
|
||||
__fdiv_ru(4.0f, 2.0f);
|
||||
__fdiv_rz(4.0f, 2.0f);
|
||||
__fdividef(4.0f, 2.0f);
|
||||
__fmaf_rd(1.0f, 2.0f, 3.0f);
|
||||
__fmaf_rn(1.0f, 2.0f, 3.0f);
|
||||
__fmaf_ru(1.0f, 2.0f, 3.0f);
|
||||
__fmaf_rz(1.0f, 2.0f, 3.0f);
|
||||
__fmul_rd(1.0f, 2.0f);
|
||||
__fmul_rn(1.0f, 2.0f);
|
||||
__fmul_ru(1.0f, 2.0f);
|
||||
__fmul_rz(1.0f, 2.0f);
|
||||
__frcp_rd(2.0f);
|
||||
__frcp_rn(2.0f);
|
||||
__frcp_ru(2.0f);
|
||||
__frcp_rz(2.0f);
|
||||
__frsqrt_rn(4.0f);
|
||||
__fsqrt_rd(4.0f);
|
||||
__fsqrt_rn(4.0f);
|
||||
__fsqrt_ru(4.0f);
|
||||
__fsqrt_rz(4.0f);
|
||||
//__fsub_rd(2.0f, 1.0f);
|
||||
//__fsub_rn(2.0f, 1.0f);
|
||||
//__fsub_ru(2.0f, 1.0f);
|
||||
//__fsub_rz(2.0f, 1.0f);
|
||||
__fsub_rd(2.0f, 1.0f);
|
||||
__fsub_rn(2.0f, 1.0f);
|
||||
__fsub_ru(2.0f, 1.0f);
|
||||
__fsub_rz(2.0f, 1.0f);
|
||||
__log10f(1.0f);
|
||||
__log2f(1.0f);
|
||||
__logf(1.0f);
|
||||
__powf(1.0f, 0.0f);
|
||||
//__saturatef(0.1f);
|
||||
//__sincosf(0.0f, &fX, &fY);
|
||||
__saturatef(0.1f);
|
||||
__sincosf(0.0f, &fX, &fY);
|
||||
__sinf(0.0f);
|
||||
__tanf(0.0f);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user