Ejemplo n.º 1
0
def suite():
    s = TestSuite()
    s.addTest(test_cublas('test_cublasIsamax'))
    s.addTest(test_cublas('test_cublasIcamax'))
    s.addTest(test_cublas('test_cublasIsamin'))
    s.addTest(test_cublas('test_cublasIcamin'))
    s.addTest(test_cublas('test_cublasSasum'))
    s.addTest(test_cublas('test_cublasScasum'))
    s.addTest(test_cublas('test_cublasSaxpy'))
    s.addTest(test_cublas('test_cublasCaxpy'))
    s.addTest(test_cublas('test_cublasScopy'))
    s.addTest(test_cublas('test_cublasCcopy'))
    s.addTest(test_cublas('test_cublasSdot'))
    s.addTest(test_cublas('test_cublasCdotu'))
    s.addTest(test_cublas('test_cublasCdotc'))
    s.addTest(test_cublas('test_cublasSrnm2'))
    s.addTest(test_cublas('test_cublasScrnm2'))
    s.addTest(test_cublas('test_cublasSscal'))
    s.addTest(test_cublas('test_cublasCscal'))
    s.addTest(test_cublas('test_cublasSrot'))
    s.addTest(test_cublas('test_cublasSswap'))
    s.addTest(test_cublas('test_cublasCswap'))
    s.addTest(test_cublas('test_cublasSgemv'))
    s.addTest(test_cublas('test_cublasCgemv'))
    s.addTest(test_cublas('test_cublasSgeam'))
    s.addTest(test_cublas('test_cublasCgeam'))
    s.addTest(test_cublas('test_cublasSgemmBatched'))
    s.addTest(test_cublas('test_cublasCgemmBatched'))
    s.addTest(test_cublas('test_cublasStrsmBatched'))
    s.addTest(test_cublas('test_cublasSgetrfBatched'))
    if misc.get_compute_capability(pycuda.autoinit.device) >= 1.3:
        s.addTest(test_cublas('test_cublasIdamax'))
        s.addTest(test_cublas('test_cublasIzamax'))
        s.addTest(test_cublas('test_cublasIdamin'))
        s.addTest(test_cublas('test_cublasIzamin'))
        s.addTest(test_cublas('test_cublasDasum'))
        s.addTest(test_cublas('test_cublasDzasum'))
        s.addTest(test_cublas('test_cublasDaxpy'))
        s.addTest(test_cublas('test_cublasZaxpy'))
        s.addTest(test_cublas('test_cublasDcopy'))
        s.addTest(test_cublas('test_cublasZcopy'))
        s.addTest(test_cublas('test_cublasDdot'))
        s.addTest(test_cublas('test_cublasZdotu'))
        s.addTest(test_cublas('test_cublasZdotc'))
        s.addTest(test_cublas('test_cublasDrnm2'))
        s.addTest(test_cublas('test_cublasDzrnm2'))
        s.addTest(test_cublas('test_cublasDscal'))
        s.addTest(test_cublas('test_cublasZscal'))
        s.addTest(test_cublas('test_cublasZdscal'))
        s.addTest(test_cublas('test_cublasDswap'))
        s.addTest(test_cublas('test_cublasZswap'))
        s.addTest(test_cublas('test_cublasDgemv'))
        s.addTest(test_cublas('test_cublasZgemv'))
        s.addTest(test_cublas('test_cublasDgeam'))
        s.addTest(test_cublas('test_cublasZgeam'))
        s.addTest(test_cublas('test_cublasDgemmBatched'))
        s.addTest(test_cublas('test_cublasZgemmBatched'))
        s.addTest(test_cublas('test_cublasDtrsmBatched'))
        s.addTest(test_cublas('test_cublasDgetrfBatched'))
    return s
Ejemplo n.º 2
0
def cuda_svd():
    # demo_types = [np.float32, np.complex64]
    demo_types = [np.float32]

    if cula._libcula_toolkit == "premium" and cumisc.get_compute_capability(pycuda.autoinit.device) >= 1.3:
        demo_types.extend([np.float64, np.complex128])

    for t in demo_types:
        print "Testing svd for type " + str(np.dtype(t))

        # numpy.float32
        a = np.asarray((np.random.rand(1000, 1000) - 0.5) / 10, t)

        print a.shape

        u_cpu, s_cpu, v_cpu = np.linalg.svd(a)

        # gpu array
        a_gpu = gpuarray.to_gpu(a)

        # call cula rutine
        u_gpu, s_gpu, vh_gpu = culinalg.svd(a_gpu)

        print u_gpu.get()
        print u_cpu

        # print s_gpu.get()
        # print vh_gpu.get()

        a_rec = np.dot(u_gpu.get(), np.dot(np.diag(s_gpu.get()), vh_gpu.get()))
        print "Success status: ", np.allclose(a, a_rec, atol=1e-3)
        print "Maximum error: ", np.max(np.abs(a - a_rec))
        print ""
Ejemplo n.º 3
0
def suite():
    s = TestSuite()
    s.addTest(test_fft('test_fft_float32_to_complex64'))
    s.addTest(test_fft('test_ifft_complex64_to_float32'))
    if misc.get_compute_capability(pycuda.autoinit.device) >= 1.3:
        s.addTest(test_fft('test_fft_float64_to_complex128'))
        s.addTest(test_fft('test_ifft_complex128_to_float64'))
    return s
Ejemplo n.º 4
0
def suite():
    s = TestSuite()
    s.addTest(test_special('test_sici_float32'))
    s.addTest(test_special('test_e1z_complex64'))
    if misc.get_compute_capability(pycuda.autoinit.device) >= 1.3:
        s.addTest(test_special('test_sici_float64'))
        s.addTest(test_special('test_e1z_complex128'))
    return s
Ejemplo n.º 5
0
def suite():
    s = TestSuite()
    s.addTest(test_fft('test_fft_float32_to_complex64'))
    s.addTest(test_fft('test_ifft_complex64_to_float32'))
    if misc.get_compute_capability(pycuda.autoinit.device) >= 1.3:
        s.addTest(test_fft('test_fft_float64_to_complex128'))
        s.addTest(test_fft('test_ifft_complex128_to_float64'))
    return s
Ejemplo n.º 6
0
def suite():
    s = TestSuite()
    s.addTest(test_integrate('test_trapz_float32'))
    s.addTest(test_integrate('test_trapz_complex64'))
    s.addTest(test_integrate('test_trapz2d_float32'))
    s.addTest(test_integrate('test_trapz2d_complex64'))
    if misc.get_compute_capability(pycuda.autoinit.device) >= 1.3:
        s.addTest(test_integrate('test_trapz_float64'))
        s.addTest(test_integrate('test_trapz_complex128'))
        s.addTest(test_integrate('test_trapz2d_float64'))
        s.addTest(test_integrate('test_trapz2d_complex128'))
    return s
Ejemplo n.º 7
0
def suite():
    s = TestSuite()
    s.addTest(test_integrate('test_trapz_float32'))
    s.addTest(test_integrate('test_trapz_complex64'))
    s.addTest(test_integrate('test_trapz2d_float32'))
    s.addTest(test_integrate('test_trapz2d_complex64'))
    if misc.get_compute_capability(pycuda.autoinit.device) >= 1.3:
        s.addTest(test_integrate('test_trapz_float64'))
        s.addTest(test_integrate('test_trapz_complex128'))
        s.addTest(test_integrate('test_trapz2d_float64'))
        s.addTest(test_integrate('test_trapz2d_complex128'))
    return s
Ejemplo n.º 8
0
def suite():
    s = TestSuite()
    s.addTest(test_misc('test_maxabs_float32'))
    s.addTest(test_misc('test_maxabs_complex64'))
    s.addTest(test_misc('test_cumsum_float32'))
    s.addTest(test_misc('test_cumsum_complex64'))
    s.addTest(test_misc('test_diff_float32'))
    s.addTest(test_misc('test_diff_complex64'))
    if misc.get_compute_capability(pycuda.autoinit.device) >= 1.3:
        s.addTest(test_misc('test_maxabs_float64'))
        s.addTest(test_misc('test_maxabs_complex128'))
        s.addTest(test_misc('test_cumsum_float64'))
        s.addTest(test_misc('test_cumsum_complex128'))
        s.addTest(test_misc('test_diff_float64'))
        s.addTest(test_misc('test_diff_complex128'))
    return s
Ejemplo n.º 9
0
def suite():
    s = TestSuite()
    s.addTest(test_misc('test_maxabs_float32'))
    s.addTest(test_misc('test_maxabs_complex64'))
    s.addTest(test_misc('test_cumsum_float32'))
    s.addTest(test_misc('test_cumsum_complex64'))
    s.addTest(test_misc('test_diff_float32'))
    s.addTest(test_misc('test_diff_complex64'))
    if misc.get_compute_capability(pycuda.autoinit.device) >= 1.3:
        s.addTest(test_misc('test_maxabs_float64'))
        s.addTest(test_misc('test_maxabs_complex128'))
        s.addTest(test_misc('test_cumsum_float64'))
        s.addTest(test_misc('test_cumsum_complex128'))
        s.addTest(test_misc('test_diff_float64'))
        s.addTest(test_misc('test_diff_complex128'))
    return s
Ejemplo n.º 10
0
def suite():
    s = TestSuite()
    s.addTest(test_misc('test_maxabs_float32'))
    s.addTest(test_misc('test_maxabs_complex64'))
    s.addTest(test_misc('test_cumsum_float32'))
    s.addTest(test_misc('test_cumsum_complex64'))
    s.addTest(test_misc('test_diff_float32'))
    s.addTest(test_misc('test_diff_complex64'))
    s.addTest(test_misc('test_get_by_index_float32'))
    s.addTest(test_misc('test_set_by_index_dest_float32'))
    s.addTest(test_misc('test_set_by_index_src_float32'))
    s.addTest(test_misc('test_binaryop_matvec_float32'))
    s.addTest(test_misc('test_binaryop_matvec_complex64'))
    s.addTest(test_misc('test_sum_float32'))
    s.addTest(test_misc('test_sum_complex64'))
    s.addTest(test_misc('test_mean_float32'))
    s.addTest(test_misc('test_mean_complex64'))
    s.addTest(test_misc('test_var_float32'))
    s.addTest(test_misc('test_var_complex64'))
    s.addTest(test_misc('test_std_float32'))
    s.addTest(test_misc('test_std_complex64'))
    s.addTest(test_misc('test_minmax_float32'))
    s.addTest(test_misc('test_argminmax_float32'))
    if misc.get_compute_capability(pycuda.autoinit.device) >= 1.3:
        s.addTest(test_misc('test_maxabs_float64'))
        s.addTest(test_misc('test_maxabs_complex128'))
        s.addTest(test_misc('test_cumsum_float64'))
        s.addTest(test_misc('test_cumsum_complex128'))
        s.addTest(test_misc('test_diff_float64'))
        s.addTest(test_misc('test_diff_complex128'))
        s.addTest(test_misc('test_get_by_index_float32'))
        s.addTest(test_misc('test_set_by_index_dest_float64'))
        s.addTest(test_misc('test_set_by_index_src_float64'))
        s.addTest(test_misc('test_sum_float64'))
        s.addTest(test_misc('test_sum_complex128'))
        s.addTest(test_misc('test_mean_float64'))
        s.addTest(test_misc('test_mean_complex128'))
        s.addTest(test_misc('test_binaryop_matvec_float64'))
        s.addTest(test_misc('test_binaryop_matvec_complex128'))
        s.addTest(test_misc('test_var_float64'))
        s.addTest(test_misc('test_var_complex128'))
        s.addTest(test_misc('test_std_float64'))
        s.addTest(test_misc('test_std_complex128'))
    s.addTest(test_misc('test_minmax_float64'))
    s.addTest(test_misc('test_argminmax_float64'))
    return s
Ejemplo n.º 11
0
def suite():
    s = TestSuite()
    s.addTest(test_misc('test_maxabs_float32'))
    s.addTest(test_misc('test_maxabs_complex64'))
    s.addTest(test_misc('test_cumsum_float32'))
    s.addTest(test_misc('test_cumsum_complex64'))
    s.addTest(test_misc('test_diff_float32'))
    s.addTest(test_misc('test_diff_complex64'))
    s.addTest(test_misc('test_get_by_index_float32'))
    s.addTest(test_misc('test_set_by_index_dest_float32'))
    s.addTest(test_misc('test_set_by_index_src_float32'))
    s.addTest(test_misc('test_binaryop_matvec_float32'))
    s.addTest(test_misc('test_binaryop_matvec_complex64'))
    s.addTest(test_misc('test_sum_float32'))
    s.addTest(test_misc('test_sum_complex64'))
    s.addTest(test_misc('test_mean_float32'))
    s.addTest(test_misc('test_mean_complex64'))
    s.addTest(test_misc('test_var_float32'))
    s.addTest(test_misc('test_var_complex64'))
    s.addTest(test_misc('test_std_float32'))
    s.addTest(test_misc('test_std_complex64'))
    if misc.get_compute_capability(pycuda.autoinit.device) >= 1.3:
        s.addTest(test_misc('test_maxabs_float64'))
        s.addTest(test_misc('test_maxabs_complex128'))
        s.addTest(test_misc('test_cumsum_float64'))
        s.addTest(test_misc('test_cumsum_complex128'))
        s.addTest(test_misc('test_diff_float64'))
        s.addTest(test_misc('test_diff_complex128'))
        s.addTest(test_misc('test_get_by_index_float32'))
        s.addTest(test_misc('test_set_by_index_dest_float64'))
        s.addTest(test_misc('test_set_by_index_src_float64'))
        s.addTest(test_misc('test_sum_float64'))
        s.addTest(test_misc('test_sum_complex128'))
        s.addTest(test_misc('test_mean_float64'))
        s.addTest(test_misc('test_mean_complex128'))
        s.addTest(test_misc('test_binaryop_matvec_float64'))
        s.addTest(test_misc('test_binaryop_matvec_complex128'))
        s.addTest(test_misc('test_var_float64'))
        s.addTest(test_misc('test_var_complex128'))
        s.addTest(test_misc('test_std_float64'))
        s.addTest(test_misc('test_std_complex128'))
    return s
Ejemplo n.º 12
0
def suite():
    s = TestSuite()
    s.addTest(test_fft('test_fft_float32_to_complex64_1d'))
    s.addTest(test_fft('test_fft_float32_to_complex64_2d')) 
    s.addTest(test_fft('test_batch_fft_float32_to_complex64_1d'))
    s.addTest(test_fft('test_batch_fft_float32_to_complex64_2d'))
    s.addTest(test_fft('test_ifft_complex64_to_float32_1d'))
    s.addTest(test_fft('test_ifft_complex64_to_float32_2d'))
    s.addTest(test_fft('test_batch_ifft_complex64_to_float32_1d'))
    s.addTest(test_fft('test_batch_ifft_complex64_to_float32_2d'))
    s.addTest(test_fft('test_multiple_streams'))
    if misc.get_compute_capability(pycuda.autoinit.device) >= 1.3:
        s.addTest(test_fft('test_fft_float64_to_complex128_1d'))
        s.addTest(test_fft('test_fft_float64_to_complex128_2d'))
        s.addTest(test_fft('test_batch_fft_float64_to_complex128_1d'))
        s.addTest(test_fft('test_batch_fft_float64_to_complex128_2d'))
        s.addTest(test_fft('test_ifft_complex128_to_float64_1d'))
        s.addTest(test_fft('test_ifft_complex128_to_float64_2d'))
        s.addTest(test_fft('test_batch_ifft_complex128_to_float64_1d'))
        s.addTest(test_fft('test_batch_ifft_complex128_to_float64_2d'))
    return s
Ejemplo n.º 13
0
def suite():
    s = TestSuite()
    s.addTest(test_fft('test_fft_float32_to_complex64_1d'))
    s.addTest(test_fft('test_fft_float32_to_complex64_2d'))
    s.addTest(test_fft('test_batch_fft_float32_to_complex64_1d'))
    s.addTest(test_fft('test_batch_fft_float32_to_complex64_2d'))
    s.addTest(test_fft('test_ifft_complex64_to_float32_1d'))
    s.addTest(test_fft('test_ifft_complex64_to_float32_2d'))
    s.addTest(test_fft('test_batch_ifft_complex64_to_float32_1d'))
    s.addTest(test_fft('test_batch_ifft_complex64_to_float32_2d'))
    s.addTest(test_fft('test_multiple_streams'))
    if misc.get_compute_capability(pycuda.autoinit.device) >= 1.3:
        s.addTest(test_fft('test_fft_float64_to_complex128_1d'))
        s.addTest(test_fft('test_fft_float64_to_complex128_2d'))
        s.addTest(test_fft('test_batch_fft_float64_to_complex128_1d'))
        s.addTest(test_fft('test_batch_fft_float64_to_complex128_2d'))
        s.addTest(test_fft('test_ifft_complex128_to_float64_1d'))
        s.addTest(test_fft('test_ifft_complex128_to_float64_2d'))
        s.addTest(test_fft('test_batch_ifft_complex128_to_float64_1d'))
        s.addTest(test_fft('test_batch_ifft_complex128_to_float64_2d'))
    return s
Ejemplo n.º 14
0
"""

import pycuda.autoinit
import pycuda.driver as drv
import pycuda.gpuarray as gpuarray
import numpy as np

import scikits.cuda.linalg as culinalg
import scikits.cuda.misc as cumisc

culinalg.init()

# Double precision is only supported by devices with compute
# capability >= 1.3:
import string
import scikits.cuda.cula as cula

demo_types = [np.float32, np.complex64]
if cula._libcula_toolkit == "premium" and cumisc.get_compute_capability(pycuda.autoinit.device) >= 1.3:
    demo_types.extend([np.float64, np.complex128])

for t in demo_types:
    print "Testing pinv for type " + str(np.dtype(t))
    a = np.asarray((np.random.rand(50, 50) - 0.5) / 10, t)
    a_gpu = gpuarray.to_gpu(a)
    a_inv_gpu = culinalg.pinv(a_gpu)

    print "Success status: ", np.allclose(np.linalg.pinv(a), a_inv_gpu.get(), atol=1e-2)
    print "Maximum error: ", np.max(np.abs(np.linalg.pinv(a) - a_inv_gpu.get()))
    print ""
Ejemplo n.º 15
0
def suite():
    s = TestSuite()
    s.addTest(test_linalg("test_svd_ss_float32"))
    s.addTest(test_linalg("test_svd_ss_complex64"))
    s.addTest(test_linalg("test_svd_so_float32"))
    s.addTest(test_linalg("test_svd_so_complex64"))
    s.addTest(test_linalg("test_dot_matrix_float32"))
    s.addTest(test_linalg("test_dot_matrix_complex64"))
    s.addTest(test_linalg("test_dot_matrix_h_complex64"))
    s.addTest(test_linalg("test_dot_vector_float32"))
    s.addTest(test_linalg("test_dot_vector_complex64"))
    s.addTest(test_linalg("test_mdot_matrix_float32"))
    s.addTest(test_linalg("test_mdot_matrix_complex64"))
    s.addTest(test_linalg("test_dot_diag_float32"))
    s.addTest(test_linalg("test_dot_diag_complex64"))
    s.addTest(test_linalg("test_dot_diag_t_float32"))
    s.addTest(test_linalg("test_dot_diag_t_complex64"))
    s.addTest(test_linalg("test_transpose_float32"))
    s.addTest(test_linalg("test_transpose_complex64"))
    s.addTest(test_linalg("test_hermitian_float32"))
    s.addTest(test_linalg("test_hermitian_complex64"))
    s.addTest(test_linalg("test_conj_complex64"))
    s.addTest(test_linalg("test_diag_1d_float32"))
    s.addTest(test_linalg("test_diag_2d_wide_float32"))
    s.addTest(test_linalg("test_diag_2d_tall_float32"))
    s.addTest(test_linalg("test_diag_1d_complex64"))
    s.addTest(test_linalg("test_diag_2d_wide_complex64"))
    s.addTest(test_linalg("test_diag_2d_tall_complex64"))
    s.addTest(test_linalg("test_eye_float32"))
    s.addTest(test_linalg("test_eye_complex64"))
    s.addTest(test_linalg("test_pinv_float32"))
    s.addTest(test_linalg("test_pinv_complex64"))
    s.addTest(test_linalg("test_tril_float32"))
    s.addTest(test_linalg("test_tril_complex64"))
    s.addTest(test_linalg("test_multiply_float32"))
    s.addTest(test_linalg("test_multiply_complex64"))
    s.addTest(test_linalg("test_cho_factor_float32"))
    s.addTest(test_linalg("test_cho_solve_float32"))
    s.addTest(test_linalg("test_inv_float32"))
    s.addTest(test_linalg("test_inv_complex64"))
    s.addTest(test_linalg("test_add_diag_float32"))
    s.addTest(test_linalg("test_add_diag_complex64"))
    s.addTest(test_linalg("test_inv_exceptions"))
    s.addTest(test_linalg("test_eye_large_float32"))
    s.addTest(test_linalg("test_trace_float32"))
    s.addTest(test_linalg("test_trace_complex64"))
    s.addTest(test_linalg("test_add_dot_matrix_float32"))
    s.addTest(test_linalg("test_add_dot_matrix_complex64"))
    s.addTest(test_linalg("test_dot_strided_float32"))
    s.addTest(test_linalg("test_dot_strided_complex64"))
    s.addTest(test_linalg("test_det_float32"))
    s.addTest(test_linalg("test_det_complex64"))
    if misc.get_compute_capability(pycuda.autoinit.device) >= 1.3:
        s.addTest(test_linalg("test_svd_ss_float64"))
        s.addTest(test_linalg("test_svd_ss_complex128"))
        s.addTest(test_linalg("test_svd_so_float64"))
        s.addTest(test_linalg("test_svd_so_complex128"))
        s.addTest(test_linalg("test_dot_matrix_float64"))
        s.addTest(test_linalg("test_dot_matrix_complex128"))
        s.addTest(test_linalg("test_dot_matrix_h_complex128"))
        s.addTest(test_linalg("test_dot_vector_float64"))
        s.addTest(test_linalg("test_dot_vector_complex128"))
        s.addTest(test_linalg("test_mdot_matrix_float64"))
        s.addTest(test_linalg("test_mdot_matrix_complex128"))
        s.addTest(test_linalg("test_dot_diag_t_float64"))
        s.addTest(test_linalg("test_dot_diag_t_complex128"))
        s.addTest(test_linalg("test_transpose_float64"))
        s.addTest(test_linalg("test_transpose_complex128"))
        s.addTest(test_linalg("test_hermitian_float64"))
        s.addTest(test_linalg("test_hermitian_complex64"))
        s.addTest(test_linalg("test_conj_complex128"))
        s.addTest(test_linalg("test_diag_1d_float64"))
        s.addTest(test_linalg("test_diag_2d_wide_float64"))
        s.addTest(test_linalg("test_diag_2d_tall_float64"))
        s.addTest(test_linalg("test_diag_1d_complex128"))
        s.addTest(test_linalg("test_diag_2d_wide_complex128"))
        s.addTest(test_linalg("test_diag_2d_tall_complex128"))
        s.addTest(test_linalg("test_eye_float64"))
        s.addTest(test_linalg("test_eye_complex128"))
        s.addTest(test_linalg("test_pinv_float64"))
        s.addTest(test_linalg("test_pinv_complex128"))
        s.addTest(test_linalg("test_tril_float64"))
        s.addTest(test_linalg("test_tril_complex128"))
        s.addTest(test_linalg("test_multiply_float64"))
        s.addTest(test_linalg("test_multiply_complex128"))
        s.addTest(test_linalg("test_inv_float64"))
        s.addTest(test_linalg("test_inv_complex128"))
        s.addTest(test_linalg("test_add_diag_float64"))
        s.addTest(test_linalg("test_add_diag_complex128"))
        s.addTest(test_linalg("test_trace_float64"))
        s.addTest(test_linalg("test_trace_complex128"))
        s.addTest(test_linalg("test_add_dot_matrix_float64"))
        s.addTest(test_linalg("test_add_dot_matrix_complex128"))
        s.addTest(test_linalg("test_dot_strided_float64"))
        s.addTest(test_linalg("test_dot_strided_complex128"))
        s.addTest(test_linalg("test_det_float64"))
        s.addTest(test_linalg("test_det_complex128"))
    return s
Ejemplo n.º 16
0
import numpy as np

import scikits.cuda.linalg as culinalg
import scikits.cuda.misc as cumisc
import string

from ctypes import *
cdll.LoadLibrary("/usr/local/lib/libCudaKernelLibrary.so")
kmeansLib = CDLL("/usr/local/lib/libCudaKernelLibrary.so")

culinalg.init()

# Double precision is only supported by devices with compute
# capability >= 1.3:
demo_types = [np.float32]
if cumisc.get_compute_capability(pycuda.autoinit.device) >= 5.0:
    demo_types.extend([np.float64])

for t in demo_types:
    np.random.seed(seed=42)
    m = 899946
    n = 129
    k = 1024

    print 'Testing matrix multiplication for type ' + str(np.dtype(t))
    a = np.asarray(np.random.rand(m,n), t)
    b = np.asarray(np.random.rand(n,k), t)
    
    start = cuda.Event()
    stop = cuda.Event()
Ejemplo n.º 17
0
def suite():
    s = TestSuite()
    s.addTest(test_linalg('test_svd_ss_float32'))
    s.addTest(test_linalg('test_svd_ss_complex64'))
    s.addTest(test_linalg('test_svd_so_float32'))
    s.addTest(test_linalg('test_svd_so_complex64'))
    s.addTest(test_linalg('test_dot_matrix_float32'))
    s.addTest(test_linalg('test_dot_matrix_complex64'))
    s.addTest(test_linalg('test_dot_matrix_h_complex64'))
    s.addTest(test_linalg('test_dot_vector_float32'))
    s.addTest(test_linalg('test_dot_vector_complex64'))
    s.addTest(test_linalg('test_mdot_matrix_float32'))
    s.addTest(test_linalg('test_mdot_matrix_complex64'))
    s.addTest(test_linalg('test_dot_diag_float32'))
    s.addTest(test_linalg('test_dot_diag_complex64'))
    s.addTest(test_linalg('test_dot_diag_t_float32'))
    s.addTest(test_linalg('test_dot_diag_t_complex64'))
    s.addTest(test_linalg('test_transpose_float32'))
    s.addTest(test_linalg('test_transpose_complex64'))
    s.addTest(test_linalg('test_hermitian_float32'))
    s.addTest(test_linalg('test_hermitian_complex64'))
    s.addTest(test_linalg('test_conj_complex64'))
    s.addTest(test_linalg('test_diag_float32'))
    s.addTest(test_linalg('test_diag_float32_large'))
    s.addTest(test_linalg('test_diag_complex64'))
    s.addTest(test_linalg('test_eye_float32'))
    s.addTest(test_linalg('test_eye_complex64'))
    s.addTest(test_linalg('test_pinv_float32'))
    s.addTest(test_linalg('test_pinv_complex64'))
    s.addTest(test_linalg('test_tril_float32'))
    s.addTest(test_linalg('test_tril_complex64'))
    s.addTest(test_linalg('test_multiply_float32'))
    s.addTest(test_linalg('test_multiply_complex64'))
    s.addTest(test_linalg('test_cho_factor_float32'))
    s.addTest(test_linalg('test_cho_solve_float32'))
    s.addTest(test_linalg('test_inv_float32'))
    s.addTest(test_linalg('test_inv_complex64'))
    s.addTest(test_linalg('test_add_diag_float32'))
    s.addTest(test_linalg('test_add_diag_complex64'))
    s.addTest(test_linalg('test_inv_exceptions'))
    s.addTest(test_linalg('test_eye_large_float32'))
    if misc.get_compute_capability(pycuda.autoinit.device) >= 1.3:
        s.addTest(test_linalg('test_svd_ss_float64'))
        s.addTest(test_linalg('test_svd_ss_complex128'))
        s.addTest(test_linalg('test_svd_so_float64'))
        s.addTest(test_linalg('test_svd_so_complex128'))
        s.addTest(test_linalg('test_dot_matrix_float64'))
        s.addTest(test_linalg('test_dot_matrix_complex128'))
        s.addTest(test_linalg('test_dot_matrix_h_complex128'))
        s.addTest(test_linalg('test_dot_vector_float64'))
        s.addTest(test_linalg('test_dot_vector_complex128'))
        s.addTest(test_linalg('test_mdot_matrix_float64'))
        s.addTest(test_linalg('test_mdot_matrix_complex128'))
        s.addTest(test_linalg('test_dot_diag_float64'))
        s.addTest(test_linalg('test_dot_diag_complex128'))
        s.addTest(test_linalg('test_dot_diag_t_float64'))
        s.addTest(test_linalg('test_dot_diag_t_complex128'))
        s.addTest(test_linalg('test_transpose_float64'))
        s.addTest(test_linalg('test_transpose_complex128'))
        s.addTest(test_linalg('test_hermitian_float64'))
        s.addTest(test_linalg('test_hermitian_complex64'))
        s.addTest(test_linalg('test_conj_complex128'))
        s.addTest(test_linalg('test_diag_float64'))
        s.addTest(test_linalg('test_diag_complex128'))
        s.addTest(test_linalg('test_eye_float64'))
        s.addTest(test_linalg('test_eye_complex128'))
        s.addTest(test_linalg('test_pinv_float64'))
        s.addTest(test_linalg('test_pinv_complex128'))
        s.addTest(test_linalg('test_tril_float64'))
        s.addTest(test_linalg('test_tril_complex128'))
        s.addTest(test_linalg('test_multiply_float64'))
        s.addTest(test_linalg('test_multiply_complex128'))
        s.addTest(test_linalg('test_inv_float64'))
        s.addTest(test_linalg('test_inv_complex128'))
        s.addTest(test_linalg('test_add_diag_float64'))
        s.addTest(test_linalg('test_add_diag_complex128'))
    return s
Ejemplo n.º 18
0
#!/usr/bin/env python
"""
Demonstrate diagonal matrix creation on the GPU.
"""

import pycuda.autoinit
import pycuda.gpuarray as gpuarray
import pycuda.driver as drv
import numpy as np

import scikits.cuda.linalg as culinalg
import scikits.cuda.misc as cumisc
culinalg.init()

# Double precision is only supported by devices with compute
# capability >= 1.3:
import string
demo_types = [np.float32, np.complex64]
if cumisc.get_compute_capability(pycuda.autoinit.device) >= 1.3:
    demo_types.extend([np.float64, np.complex128])

for t in demo_types:
    print 'Testing real diagonal matrix creation for type ' + str(np.dtype(t))
    v = np.array([1, 2, 3, 4, 5, 6], t)
    v_gpu = gpuarray.to_gpu(v)
    d_gpu = culinalg.diag(v_gpu)
    print 'Success status: ', np.all(d_gpu.get() == np.diag(v))
Ejemplo n.º 19
0
def suite():
    s = TestSuite()
    s.addTest(test_linalg('test_svd_ss_float32'))
    s.addTest(test_linalg('test_svd_ss_complex64'))
    s.addTest(test_linalg('test_svd_so_float32'))
    s.addTest(test_linalg('test_svd_so_complex64'))
    s.addTest(test_linalg('test_dot_matrix_float32'))
    s.addTest(test_linalg('test_dot_matrix_complex64'))
    s.addTest(test_linalg('test_dot_matrix_t_float32'))
    s.addTest(test_linalg('test_dot_matrix_t_complex64'))
    s.addTest(test_linalg('test_dot_matrix_h_complex64'))
    s.addTest(test_linalg('test_dot_vector_float32'))
    s.addTest(test_linalg('test_dot_vector_complex64'))
    s.addTest(test_linalg('test_mdot_matrix_float32'))
    s.addTest(test_linalg('test_mdot_matrix_complex64'))
    s.addTest(test_linalg('test_dot_diag_float32'))
    s.addTest(test_linalg('test_dot_diag_complex64'))
    s.addTest(test_linalg('test_dot_diag_t_float32'))
    s.addTest(test_linalg('test_dot_diag_t_complex64'))
    s.addTest(test_linalg('test_transpose_float32'))
    s.addTest(test_linalg('test_transpose_complex64'))
    s.addTest(test_linalg('test_hermitian_float32'))
    s.addTest(test_linalg('test_hermitian_complex64'))
    s.addTest(test_linalg('test_conj_complex64'))
    s.addTest(test_linalg('test_diag_float32'))
    s.addTest(test_linalg('test_diag_complex64'))
    s.addTest(test_linalg('test_eye_float32'))
    s.addTest(test_linalg('test_eye_complex64'))
    s.addTest(test_linalg('test_pinv_float32'))
    s.addTest(test_linalg('test_pinv_complex64'))
    s.addTest(test_linalg('test_tril_float32'))
    s.addTest(test_linalg('test_tril_complex64'))
    s.addTest(test_linalg('test_multiply_float32'))
    s.addTest(test_linalg('test_multiply_complex64'))
    if misc.get_compute_capability(pycuda.autoinit.device) >= 1.3:
        s.addTest(test_linalg('test_svd_ss_float64'))
        s.addTest(test_linalg('test_svd_ss_complex128'))
        s.addTest(test_linalg('test_svd_so_float64'))
        s.addTest(test_linalg('test_svd_so_complex128'))
        s.addTest(test_linalg('test_dot_matrix_float64'))
        s.addTest(test_linalg('test_dot_matrix_complex128'))
        s.addTest(test_linalg('test_dot_matrix_t_float64'))
        s.addTest(test_linalg('test_dot_matrix_t_complex128'))
        s.addTest(test_linalg('test_dot_matrix_h_complex128'))
        s.addTest(test_linalg('test_dot_vector_float64'))
        s.addTest(test_linalg('test_dot_vector_complex128'))
        s.addTest(test_linalg('test_mdot_matrix_float64'))
        s.addTest(test_linalg('test_mdot_matrix_complex128'))
        s.addTest(test_linalg('test_dot_diag_float64'))
        s.addTest(test_linalg('test_dot_diag_complex128'))
        s.addTest(test_linalg('test_dot_diag_t_float64'))
        s.addTest(test_linalg('test_dot_diag_t_complex128'))
        s.addTest(test_linalg('test_transpose_float64'))
        s.addTest(test_linalg('test_transpose_complex128'))
        s.addTest(test_linalg('test_hermitian_float64'))
        s.addTest(test_linalg('test_hermitian_complex64'))
        s.addTest(test_linalg('test_conj_complex128'))
        s.addTest(test_linalg('test_diag_float64'))
        s.addTest(test_linalg('test_diag_complex128'))
        s.addTest(test_linalg('test_eye_float64'))
        s.addTest(test_linalg('test_eye_complex128'))
        s.addTest(test_linalg('test_pinv_float64'))
        s.addTest(test_linalg('test_pinv_complex128'))        
        s.addTest(test_linalg('test_tril_float64'))
        s.addTest(test_linalg('test_tril_complex128'))
        s.addTest(test_linalg('test_multiply_float64'))
        s.addTest(test_linalg('test_multiply_complex128'))
    return s