summaryrefslogtreecommitdiff
path: root/tests/linalg_test.py
diff options
context:
space:
mode:
authorStan Seibert <stan@mtrr.org>2011-09-16 15:02:02 -0400
committerStan Seibert <stan@mtrr.org>2011-09-16 15:02:02 -0400
commit142b3c3caff164deb9bc7b2848e58e52387723ff (patch)
tree417da3ad69a2756aff7a21dca4b08733d3e87afb /tests/linalg_test.py
parent084dfd08b714faefaea77cb7dc04d2e93dc04b1d (diff)
downloadchroma-142b3c3caff164deb9bc7b2848e58e52387723ff.tar.gz
chroma-142b3c3caff164deb9bc7b2848e58e52387723ff.tar.bz2
chroma-142b3c3caff164deb9bc7b2848e58e52387723ff.zip
Move CUDA source inside chroma package, rename tests directory to test
Diffstat (limited to 'tests/linalg_test.py')
-rw-r--r--tests/linalg_test.py214
1 files changed, 0 insertions, 214 deletions
diff --git a/tests/linalg_test.py b/tests/linalg_test.py
deleted file mode 100644
index 31688d9..0000000
--- a/tests/linalg_test.py
+++ /dev/null
@@ -1,214 +0,0 @@
-import os
-import numpy as np
-from pycuda import autoinit
-from pycuda.compiler import SourceModule
-import pycuda.driver as cuda
-from pycuda import gpuarray
-
-float3 = gpuarray.vec.float3
-
-print 'device %s' % autoinit.device.name()
-
-current_directory = os.path.split(os.path.realpath(__file__))[0]
-source_directory = current_directory + '/../src'
-
-source = open(current_directory + '/linalg_test.cu').read()
-
-mod = SourceModule(source, options=['-I' + source_directory], no_extern_c=True, cache_dir=False)
-
-float3add = mod.get_function('float3add')
-float3addequal = mod.get_function('float3addequal')
-float3sub = mod.get_function('float3sub')
-float3subequal = mod.get_function('float3subequal')
-float3addfloat = mod.get_function('float3addfloat')
-float3addfloatequal = mod.get_function('float3addfloatequal')
-floataddfloat3 = mod.get_function('floataddfloat3')
-float3subfloat = mod.get_function('float3subfloat')
-float3subfloatequal = mod.get_function('float3subfloatequal')
-floatsubfloat3 = mod.get_function('floatsubfloat3')
-float3mulfloat = mod.get_function('float3mulfloat')
-float3mulfloatequal = mod.get_function('float3mulfloatequal')
-floatmulfloat3 = mod.get_function('floatmulfloat3')
-float3divfloat = mod.get_function('float3divfloat')
-float3divfloatequal = mod.get_function('float3divfloatequal')
-floatdivfloat3 = mod.get_function('floatdivfloat3')
-dot = mod.get_function('dot')
-cross = mod.get_function('cross')
-norm = mod.get_function('norm')
-minusfloat3 = mod.get_function('minusfloat3')
-
-size = {'block': (256,1,1), 'grid': (1,1)}
-
-a = np.empty(size['block'][0], dtype=float3)
-b = np.empty(size['block'][0], dtype=float3)
-c = np.float32(np.random.random_sample())
-
-a['x'] = np.random.random_sample(size=a.size)
-a['y'] = np.random.random_sample(size=a.size)
-a['z'] = np.random.random_sample(size=a.size)
-
-b['x'] = np.random.random_sample(size=b.size)
-b['y'] = np.random.random_sample(size=b.size)
-b['z'] = np.random.random_sample(size=b.size)
-
-def testfloat3add():
- dest = np.empty(a.size, dtype=float3)
- float3add(cuda.In(a), cuda.In(b), cuda.Out(dest), **size)
- if not np.allclose(a['x']+b['x'], dest['x']) or \
- not np.allclose(a['y']+b['y'], dest['y']) or \
- not np.allclose(a['z']+b['z'], dest['z']):
- assert False
-
-def testfloat3sub():
- dest = np.empty(a.size, dtype=float3)
- float3sub(cuda.In(a), cuda.In(b), cuda.Out(dest), **size)
- if not np.allclose(a['x']-b['x'], dest['x']) or \
- not np.allclose(a['y']-b['y'], dest['y']) or \
- not np.allclose(a['z']-b['z'], dest['z']):
- assert False
-
-def testfloat3addequal():
- dest = np.copy(a)
- float3addequal(cuda.InOut(dest), cuda.In(b), **size)
- if not np.allclose(a['x']+b['x'], dest['x']) or \
- not np.allclose(a['y']+b['y'], dest['y']) or \
- not np.allclose(a['z']+b['z'], dest['z']):
- assert False
-
-def testfloat3subequal():
- dest = np.copy(a)
- float3subequal(cuda.InOut(dest), cuda.In(b), **size)
- if not np.allclose(a['x']-b['x'], dest['x']) or \
- not np.allclose(a['y']-b['y'], dest['y']) or \
- not np.allclose(a['z']-b['z'], dest['z']):
- assert False
-
-def testfloat3addfloat():
- dest = np.empty(a.size, dtype=float3)
- float3addfloat(cuda.In(a), c, cuda.Out(dest), **size)
- if not np.allclose(a['x']+c, dest['x']) or \
- not np.allclose(a['y']+c, dest['y']) or \
- not np.allclose(a['z']+c, dest['z']):
- assert False
-
-def testfloat3addfloatequal():
- dest = np.copy(a)
- float3addfloatequal(cuda.InOut(dest), c, **size)
- if not np.allclose(a['x']+c, dest['x']) or \
- not np.allclose(a['y']+c, dest['y']) or \
- not np.allclose(a['z']+c, dest['z']):
- assert False
-
-def testfloataddfloat3():
- dest = np.empty(a.size, dtype=float3)
- floataddfloat3(cuda.In(a), c, cuda.Out(dest), **size)
- if not np.allclose(c+a['x'], dest['x']) or \
- not np.allclose(c+a['y'], dest['y']) or \
- not np.allclose(c+a['z'], dest['z']):
- assert False
-
-def testfloat3subfloat():
- dest = np.empty(a.size, dtype=float3)
- float3subfloat(cuda.In(a), c, cuda.Out(dest), **size)
- if not np.allclose(a['x']-c, dest['x']) or \
- not np.allclose(a['y']-c, dest['y']) or \
- not np.allclose(a['z']-c, dest['z']):
- assert False
-
-def testfloat3subfloatequal():
- dest = np.copy(a)
- float3subfloatequal(cuda.InOut(dest), c, **size)
- if not np.allclose(a['x']-c, dest['x']) or \
- not np.allclose(a['y']-c, dest['y']) or \
- not np.allclose(a['z']-c, dest['z']):
- assert False
-
-def testfloatsubfloat3():
- dest = np.empty(a.size, dtype=float3)
- floatsubfloat3(cuda.In(a), c, cuda.Out(dest), **size)
- if not np.allclose(c-a['x'], dest['x']) or \
- not np.allclose(c-a['y'], dest['y']) or \
- not np.allclose(c-a['z'], dest['z']):
- assert False
-
-def testfloat3mulfloat():
- dest = np.empty(a.size, dtype=float3)
- float3mulfloat(cuda.In(a), c, cuda.Out(dest), **size)
- if not np.allclose(a['x']*c, dest['x']) or \
- not np.allclose(a['y']*c, dest['y']) or \
- not np.allclose(a['z']*c, dest['z']):
- assert False
-
-def testfloat3mulfloatequal():
- dest = np.copy(a)
- float3mulfloatequal(cuda.InOut(dest), c, **size)
- if not np.allclose(a['x']*c, dest['x']) or \
- not np.allclose(a['y']*c, dest['y']) or \
- not np.allclose(a['z']*c, dest['z']):
- assert False
-
-def testfloatmulfloat3():
- dest = np.empty(a.size, dtype=float3)
- floatmulfloat3(cuda.In(a), c, cuda.Out(dest), **size)
- if not np.allclose(c*a['x'], dest['x']) or \
- not np.allclose(c*a['y'], dest['y']) or \
- not np.allclose(c*a['z'], dest['z']):
- assert False
-
-def testfloat3divfloat():
- dest = np.empty(a.size, dtype=float3)
- float3divfloat(cuda.In(a), c, cuda.Out(dest), **size)
- if not np.allclose(a['x']/c, dest['x']) or \
- not np.allclose(a['y']/c, dest['y']) or \
- not np.allclose(a['z']/c, dest['z']):
- assert False
-
-def testfloat3divfloatequal():
- dest = np.copy(a)
- float3divfloatequal(cuda.InOut(dest), c, **size)
- if not np.allclose(a['x']/c, dest['x']) or \
- not np.allclose(a['y']/c, dest['y']) or \
- not np.allclose(a['z']/c, dest['z']):
- assert False
-
-def testfloatdivfloat3():
- dest = np.empty(a.size, dtype=float3)
- floatdivfloat3(cuda.In(a), c, cuda.Out(dest), **size)
- if not np.allclose(c/a['x'], dest['x']) or \
- not np.allclose(c/a['y'], dest['y']) or \
- not np.allclose(c/a['z'], dest['z']):
- assert false
-
-def testdot():
- dest = np.empty(a.size, dtype=np.float32)
- dot(cuda.In(a), cuda.In(b), cuda.Out(dest), **size)
- if not np.allclose(a['x']*b['x'] + a['y']*b['y'] + a['z']*b['z'], dest):
- assert False
-
-def testcross():
- dest = np.empty(a.size, dtype=float3)
- cross(cuda.In(a), cuda.In(b), cuda.Out(dest), **size)
- for u, v, wdest in zip(a,b,dest):
- w = np.cross((u['x'], u['y'], u['z']),(v['x'],v['y'],v['z']))
- if not np.allclose(wdest['x'], w[0]) or \
- not np.allclose(wdest['y'], w[1]) or \
- not np.allclose(wdest['z'], w[2]):
- print w
- print wdest
- assert False
-
-def testnorm():
- dest = np.empty(a.size, dtype=np.float32)
- norm(cuda.In(a), cuda.Out(dest), **size)
-
- for i in range(len(dest)):
- if not np.allclose(np.linalg.norm((a['x'][i],a['y'][i],a['z'][i])), dest[i]):
- assert False
-
-def testminusfloat3():
- dest = np.empty(a.size, dtype=float3)
- minusfloat3(cuda.In(a), cuda.Out(dest), **size)
- if not np.allclose(-a['x'], dest['x']) or \
- not np.allclose(-a['y'], dest['y']) or \
- not np.allclose(-a['z'], dest['z']):
- assert False