From d62a898e07129004b568cb3ede7aa22aeea4185c Mon Sep 17 00:00:00 2001 From: "Wang, Mingjie1" Date: Mon, 24 Apr 2023 13:00:52 -0500 Subject: [PATCH] Removed to duplicate tests in tests. --- numba_dpex/tests/test_black_scholes.py | 151 --------------------- numba_dpex/tests/test_device_array_args.py | 47 ------- 2 files changed, 198 deletions(-) delete mode 100644 numba_dpex/tests/test_black_scholes.py delete mode 100644 numba_dpex/tests/test_device_array_args.py diff --git a/numba_dpex/tests/test_black_scholes.py b/numba_dpex/tests/test_black_scholes.py deleted file mode 100644 index cfc271a9db..0000000000 --- a/numba_dpex/tests/test_black_scholes.py +++ /dev/null @@ -1,151 +0,0 @@ -# SPDX-FileCopyrightText: 2020 - 2023 Intel Corporation -# -# SPDX-License-Identifier: Apache-2.0 - -import math -import time - -import dpctl -import numpy as np - -import numba_dpex as dpex -from numba_dpex.tests._helper import skip_no_opencl_gpu - -RISKFREE = 0.02 -VOLATILITY = 0.30 - -A1 = 0.31938153 -A2 = -0.356563782 -A3 = 1.781477937 -A4 = -1.821255978 -A5 = 1.330274429 -RSQRT2PI = 0.39894228040143267793994605993438 - - -def cnd(d): - K = 1.0 / (1.0 + 0.2316419 * np.abs(d)) - ret_val = ( - RSQRT2PI - * np.exp(-0.5 * d * d) - * (K * (A1 + K * (A2 + K * (A3 + K * (A4 + K * A5))))) - ) - return np.where(d > 0, 1.0 - ret_val, ret_val) - - -def black_scholes( - callResult, - putResult, - stockPrice, - optionStrike, - optionYears, - Riskfree, - Volatility, -): - S = stockPrice - X = optionStrike - T = optionYears - R = Riskfree - V = Volatility - sqrtT = np.sqrt(T) - d1 = (np.log(S / X) + (R + 0.5 * V * V) * T) / (V * sqrtT) - d2 = d1 - V * sqrtT - cndd1 = cnd(d1) - cndd2 = cnd(d2) - - expRT = np.exp(-R * T) - callResult[:] = S * cndd1 - X * expRT * cndd2 - putResult[:] = X * expRT * (1.0 - cndd2) - S * (1.0 - cndd1) - - -def randfloat(rand_var, low, high): - return (1.0 - rand_var) * low + rand_var * high - - -@skip_no_opencl_gpu -class TestBlackScholesKernel: - def test_black_scholes(self): - OPT_N = 400 - iterations = 2 - - stockPrice = randfloat(np.random.random(OPT_N), 5.0, 30.0) - optionStrike = randfloat(np.random.random(OPT_N), 1.0, 100.0) - optionYears = randfloat(np.random.random(OPT_N), 0.25, 10.0) - - callResultNumpy = np.zeros(OPT_N) - putResultNumpy = -np.ones(OPT_N) - - callResultNumbapro = np.zeros(OPT_N) - putResultNumbapro = -np.ones(OPT_N) - - # numpy - for i in range(iterations): - black_scholes( - callResultNumpy, - putResultNumpy, - stockPrice, - optionStrike, - optionYears, - RISKFREE, - VOLATILITY, - ) - - # numba_dpex - @dpex.kernel - def black_scholes_dpex(callResult, putResult, S, X, T, R, V): - i = dpex.get_global_id(0) - if i >= S.shape[0]: - return - sqrtT = math.sqrt(T[i]) - d1 = (math.log(S[i] / X[i]) + (R + 0.5 * V * V) * T[i]) / ( - V * sqrtT - ) - d2 = d1 - V * sqrtT - - K = 1.0 / (1.0 + 0.2316419 * math.fabs(d1)) - cndd1 = ( - RSQRT2PI - * math.exp(-0.5 * d1 * d1) - * (K * (A1 + K * (A2 + K * (A3 + K * (A4 + K * A5))))) - ) - if d1 > 0: - cndd1 = 1.0 - cndd1 - - K = 1.0 / (1.0 + 0.2316419 * math.fabs(d2)) - cndd2 = ( - RSQRT2PI - * math.exp(-0.5 * d2 * d2) - * (K * (A1 + K * (A2 + K * (A3 + K * (A4 + K * A5))))) - ) - if d2 > 0: - cndd2 = 1.0 - cndd2 - - expRT = math.exp((-1.0 * R) * T[i]) - callResult[i] = S[i] * cndd1 - X[i] * expRT * cndd2 - putResult[i] = X[i] * expRT * (1.0 - cndd2) - S[i] * (1.0 - cndd1) - - # numba - time0 = time.time() - blockdim = 512, 1 - griddim = int(math.ceil(float(OPT_N) / blockdim[0])), 1 - - with dpctl.device_context("opencl:gpu"): - time1 = time.time() - for i in range(iterations): - black_scholes_dpex[blockdim, griddim]( - callResultNumbapro, - putResultNumbapro, - stockPrice, - optionStrike, - optionYears, - RISKFREE, - VOLATILITY, - ) - - dt = time1 - time0 # noqa - - delta = np.abs(callResultNumpy - callResultNumbapro) - L1norm = delta.sum() / np.abs(callResultNumpy).sum() - - max_abs_err = delta.max() - assert L1norm < 1e-13 - assert max_abs_err < 1e-13 diff --git a/numba_dpex/tests/test_device_array_args.py b/numba_dpex/tests/test_device_array_args.py deleted file mode 100644 index 214add42ca..0000000000 --- a/numba_dpex/tests/test_device_array_args.py +++ /dev/null @@ -1,47 +0,0 @@ -#! /usr/bin/env python - -# Copyright 2020 - 2023 Intel Corporation -# -# SPDX-License-Identifier: Apache-2.0 - -import dpctl -import numpy as np - -import numba_dpex as dpex -from numba_dpex.tests._helper import skip_no_opencl_cpu, skip_no_opencl_gpu - - -@dpex.kernel -def data_parallel_sum(a, b, c): - i = dpex.get_global_id(0) - c[i] = a[i] + b[i] - - -global_size = 64 -N = global_size - -a = np.array(np.random.random(N), dtype=np.float32) -b = np.array(np.random.random(N), dtype=np.float32) -d = a + b - - -@skip_no_opencl_cpu -class TestArrayArgsCPU: - def test_device_array_args_cpu(self): - c = np.ones_like(a) - - with dpctl.device_context("opencl:cpu"): - data_parallel_sum[global_size, dpex.DEFAULT_LOCAL_SIZE](a, b, c) - - assert np.all(c == d) - - -@skip_no_opencl_gpu -class TestArrayArgsGPU: - def test_device_array_args_gpu(self): - c = np.ones_like(a) - - with dpctl.device_context("opencl:gpu"): - data_parallel_sum[global_size, dpex.DEFAULT_LOCAL_SIZE](a, b, c) - - assert np.all(c == d)