def main(): loops = int(sys.argv[1]) n = np.random.randint(0, 1234) num_samps = 2**16 cpu_sig, gpu_sig = rand_data_gen_gpu(num_samps) # Run baseline with scipy.signal.gauss_spline with prof.time_range("scipy_gauss_spline", 0): cpu_gauss_spline = signal.gauss_spline(cpu_sig, n) # Run CuPy version with prof.time_range("cupy_gauss_spline", 1): gpu_gauss_spline = gauss_spline(gpu_sig, n) # Compare results np.testing.assert_allclose(cpu_gauss_spline, cp.asnumpy(gpu_gauss_spline), 1e-3) # Run multiple passes to get average for _ in range(loops): with prof.time_range("cupy_gauss_spline_loop", 2): gpu_gauss_spline = gauss_spline(gpu_sig, n) cp.cuda.runtime.deviceSynchronize()
def main(): loops = int(sys.argv[1]) n = np.random.randint(0, 1234) num_samps = 2**16 cpu_sig = rand_data_gen(num_samps) # Run baseline with scipy.signal.gauss_spline with prof.time_range("scipy_gauss_spline", 0): cpu_gauss_spline = signal.gauss_spline(cpu_sig, n) # Run multiple passes to get average for _ in range(loops): with prof.time_range("scipy_gauss_spline_loop", 0): cpu_gauss_spline = signal.gauss_spline(cpu_sig, n)
# trying out the polynomials in scipy # fit a polynomial of specified order in least-squares sense # this works poorly import numpy as np import matplotlib.pyplot as plt from scipy import interpolate from scipy import signal import sys y = [] for line in sys.stdin: y.append(float(line)) x = np.arange(0,len(y)) poly = signal.gauss_spline(y,int(sys.argv[1])*2+1) print poly exit() ypoly = np.polyval(poly,x) plt.figure() plt.plot(x,y,'x') plt.plot(x,ypoly,'-g') plt.show()
def cpu_version(self, x, n): return signal.gauss_spline(x, n)