3 import numpy.testing
as npt
10 print(
"Test cublas 1")
11 print(
"precision: ", prec)
13 seed = np.int32(time.perf_counter() * 1e3)
14 c = ch.context.get_instance()
25 Vect = ch.obj_float(c, np.random.randn(size))
31 imaxC = np.abs(v).argmax()
34 print(v[imaxC], v[imaxG])
35 npt.assert_equal(imaxC, imaxG)
39 Vect = ch.obj_float(c, np.random.randn(size))
45 iminC = np.abs(v).argmin()
48 print(v[iminC], v[iminG])
49 npt.assert_equal(iminC, iminG)
53 Vect = ch.obj_float(c, np.random.randn(size))
58 sumC = np.sum(np.abs(v))
61 npt.assert_almost_equal(sumC, sumG, decimal=dec)
71 Vect = ch.obj_float(c, np.random.randn(size))
76 nC = np.linalg.norm(v)
79 npt.assert_almost_equal(nC, nG, decimal=dec)
89 Vect = ch.obj_float(c, np.random.randn(size))
98 npt.assert_array_almost_equal(sC, sG, decimal=dec)
102 Vect = ch.obj_float(c, np.random.randn(size))
105 h_Vect = np.array(Vect)
107 Vect2 = ch.obj_float(c, np.random.randn(size))
110 h_Vect2 = np.array(Vect2)
112 Vect.swap(Vect2, 1, 1)
113 npt.assert_equal(h_Vect2, np.array(Vect))
114 npt.assert_equal(h_Vect, np.array(Vect2))
118 Vect = ch.obj_float(c, np.random.randn(size))
122 Vect2 = ch.obj_float(c, np.random.randn(size))
124 Vect2.copy(Vect, 1, 1)
125 npt.assert_array_equal(np.array(Vect), np.array(Vect2))
129 Vect = ch.obj_float(c, np.random.randn(size))
132 h_Vect = np.array(Vect)
136 Vect2 = ch.obj_float(c, np.random.randn(size))
139 h_Vect2 = np.array(Vect2)
141 Vect.axpy(alpha, Vect2, 1, 1)
143 h_Vect = h_Vect + alpha * h_Vect2
145 npt.assert_almost_equal(h_Vect, np.array(Vect), decimal=dec)
149 Vect = ch.obj_float(c, np.random.randn(size))
152 h_Vect = np.array(Vect)
154 dotC = np.dot(h_Vect, h_Vect)
155 dotG = Vect.dot(Vect, 1, 1)
157 M = np.max(np.abs(dotC))
160 d = 10**np.ceil(np.log10(M))
161 npt.assert_almost_equal(dotC / d, dotG / d, decimal=dec)
165 Vect = ch.obj_double(c, np.random.randn(size))
171 imaxC = np.abs(v).argmax()
174 print(v[imaxC], v[imaxG])
175 npt.assert_equal(imaxC, imaxG)
179 Vect = ch.obj_double(c, np.random.randn(size))
185 iminC = np.abs(v).argmin()
188 print(v[iminC], v[iminG])
189 npt.assert_equal(iminC, iminG)
193 Vect = ch.obj_double(c, np.random.randn(size))
198 sumC = np.sum(np.abs(v))
201 npt.assert_almost_equal(sumC, sumG, decimal=2 * dec)
211 Vect = ch.obj_double(c, np.random.randn(size))
216 nC = np.linalg.norm(v)
219 npt.assert_almost_equal(nC, nG, decimal=2 * dec)
229 Vect = ch.obj_double(c, np.random.randn(size))
238 npt.assert_array_almost_equal(sC, sG, decimal=2 * dec)
242 Vect = ch.obj_double(c, np.random.randn(size))
245 h_Vect = np.array(Vect)
247 Vect2 = ch.obj_double(c, np.random.randn(size))
250 h_Vect2 = np.array(Vect2)
252 Vect.swap(Vect2, 1, 1)
253 npt.assert_equal(h_Vect2, np.array(Vect))
254 npt.assert_equal(h_Vect, np.array(Vect2))
258 Vect = ch.obj_double(c, np.random.randn(size))
262 Vect2 = ch.obj_double(c, np.random.randn(size))
264 Vect2.copy(Vect, 1, 1)
265 npt.assert_array_equal(np.array(Vect), np.array(Vect2))
269 Vect = ch.obj_double(c, np.random.randn(size))
272 h_Vect = np.array(Vect)
276 Vect2 = ch.obj_double(c, np.random.randn(size))
279 h_Vect2 = np.array(Vect2)
281 Vect.axpy(alpha, Vect2, 1, 1)
283 h_Vect = h_Vect + alpha * h_Vect2
285 npt.assert_almost_equal(h_Vect, np.array(Vect), decimal=2 * dec)
289 Vect = ch.obj_double(c, np.random.randn(size))
292 h_Vect = np.array(Vect)
294 dotC = np.dot(h_Vect, h_Vect)
295 dotG = Vect.dot(Vect, 1, 1)
297 M = np.max(np.abs(dotC))
300 d = 10**np.ceil(np.log10(M))
301 npt.assert_almost_equal(dotC / d, dotG / d, decimal=2 * dec)