summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Lynch2016-03-24 21:18:54 -0700
committerSean Lynch2016-03-24 21:20:12 -0700
commit75c79f8144f8f14c062388ac4df2b6146d709edb (patch)
treee0cfd05ac1724a1e03d3b691629c0807a5151058
downloadaur-75c79f8144f8f14c062388ac4df2b6146d709edb.tar.gz
Initial commit
-rw-r--r--.SRCINFO31
-rw-r--r--PKGBUILD38
-rw-r--r--isnan.patch258
3 files changed, 327 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 00000000000..cffa5eeb857
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,31 @@
+pkgbase = beignet-git
+ pkgdesc = A GPGPU System for Intel Ivybridge GPUs
+ pkgver = Release_v1.0.0.r676.gad86ed3
+ pkgrel = 1
+ url = http://cgit.freedesktop.org/beignet/
+ arch = x86_64
+ license = LGPL2.1
+ makedepends = clang
+ makedepends = cmake
+ makedepends = python2
+ depends = glu
+ depends = libsm
+ depends = libxext
+ depends = mesa
+ depends = ncurses
+ depends = ocl-icd
+ depends = llvm
+ provides = opencl-intel
+ provides = opencl-headers
+ provides = opencl-headers12
+ conflicts = opencl-intel
+ conflicts = opencl-headers
+ conflicts = opencl-headers12
+ replaces = opencl-intel
+ replaces = opencl-headers
+ replaces = opencl-headers12
+ source = git://anongit.freedesktop.org/beignet
+ sha256sums = SKIP
+
+pkgname = beignet-git
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 00000000000..8523ddf7cb1
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,38 @@
+# Current Maintainer: Sean Lynch <seanl@literati.org>
+pkgname=beignet-git
+pkgver=Release_v1.0.0.r676.gad86ed3
+pkgrel=1
+pkgdesc='A GPGPU System for Intel Ivybridge GPUs'
+arch=('x86_64')
+url='http://cgit.freedesktop.org/beignet/'
+license=('LGPL2.1')
+depends=('glu' 'libsm' 'libxext' 'mesa' 'ncurses' 'ocl-icd' 'llvm')
+makedepends=('clang' 'cmake' 'python2')
+provides=('opencl-intel' 'opencl-headers' 'opencl-headers12')
+conflicts=('opencl-intel' 'opencl-headers' 'opencl-headers12')
+replaces=('opencl-intel' 'opencl-headers' 'opencl-headers12')
+source=("git://anongit.freedesktop.org/beignet")
+sha256sums=('SKIP')
+
+pkgver() {
+ cd "$srcdir/beignet"
+ git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g'
+}
+
+build() {
+ cd "$srcdir/beignet"
+ patch -p1 < ../../isnan.patch
+ mkdir -p "$srcdir/beignet/build"
+ cd "$srcdir/beignet/build"
+ cmake .. \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=/usr/lib \
+ -DCMAKE_BUILD_TYPE=RELEASE \
+ -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python2
+ make
+}
+
+package() {
+ cd "$srcdir/beignet/build"
+ make DESTDIR="$pkgdir/" install
+}
diff --git a/isnan.patch b/isnan.patch
new file mode 100644
index 00000000000..f085755a01f
--- /dev/null
+++ b/isnan.patch
@@ -0,0 +1,258 @@
+diff --git a/utests/builtin_acos_asin.cpp b/utests/builtin_acos_asin.cpp
+index 0187226..395460b 100644
+--- a/utests/builtin_acos_asin.cpp
++++ b/utests/builtin_acos_asin.cpp
+@@ -59,10 +59,10 @@ static void builtin_acos_asin(void)
+ {
+ index_cur = k * max_function + i;
+ #if udebug
+- if (isinf(cpu_data[index_cur]) && !isinf(gpu_data[index_cur])){
++ if (std::isinf(cpu_data[index_cur]) && !std::isinf(gpu_data[index_cur])){
+ printf_c("%d/%d: %f -> gpu:%f cpu:%f\n", k, i, input_data[k], gpu_data[index_cur], cpu_data[index_cur]);
+ }
+- else if (isnan(cpu_data[index_cur]) && !isnan(gpu_data[index_cur])){
++ else if (std::isnan(cpu_data[index_cur]) && !std::isnan(gpu_data[index_cur])){
+ printf_c("%d/%d: %f -> gpu:%f cpu:%f\n", k, i, input_data[k], gpu_data[index_cur], cpu_data[index_cur]);
+ }
+ else if(fabs(gpu_data[index_cur] - cpu_data[index_cur]) > 1e-3f){
+@@ -71,10 +71,10 @@ static void builtin_acos_asin(void)
+ else
+ printf("%d/%d: %f -> gpu:%f cpu:%f\n", k, i, input_data[k], gpu_data[index_cur], cpu_data[index_cur]);
+ #else
+- if (isinf(cpu_data[index_cur]))
+- OCL_ASSERT(isinf(gpu_data[index_cur]));
+- else if (isnan(cpu_data[index_cur]))
+- OCL_ASSERT(isnan(gpu_data[index_cur]));
++ if (std::isinf(cpu_data[index_cur]))
++ OCL_ASSERT(std::isinf(gpu_data[index_cur]));
++ else if (std::isnan(cpu_data[index_cur]))
++ OCL_ASSERT(std::isnan(gpu_data[index_cur]));
+ else
+ {
+ OCL_ASSERT(fabs(gpu_data[index_cur] - cpu_data[index_cur]) < 1e-3f);
+diff --git a/utests/builtin_exp.cpp b/utests/builtin_exp.cpp
+index d5288c8..406d223 100644
+--- a/utests/builtin_exp.cpp
++++ b/utests/builtin_exp.cpp
+@@ -71,10 +71,10 @@ static void builtin_exp(void)
+ diff/gpu_data[index_cur], 3 * FLT_ULP);
+
+ #if udebug
+- if (isinf(cpu_data[index_cur]) && isinf(gpu_data[index_cur])){
++ if (std::isinf(cpu_data[index_cur]) && std::isinf(gpu_data[index_cur])){
+ printf(log);
+ }
+- else if (isnan(cpu_data[index_cur]) && isnan(gpu_data[index_cur])){
++ else if (std::isnan(cpu_data[index_cur]) && std::isnan(gpu_data[index_cur])){
+ printf(log);
+ }
+ else if( diff / cpu_data[index_cur] < 3 * FLT_ULP \
+@@ -86,10 +86,10 @@ static void builtin_exp(void)
+ else
+ printf_c(log);
+ #else
+- if (isinf(cpu_data[index_cur]))
+- OCL_ASSERTM(isinf(gpu_data[index_cur]), log);
+- else if (isnan(cpu_data[index_cur]))
+- OCL_ASSERTM(isnan(gpu_data[index_cur]), log);
++ if (std::isinf(cpu_data[index_cur]))
++ OCL_ASSERTM(std::isinf(gpu_data[index_cur]), log);
++ else if (std::isnan(cpu_data[index_cur]))
++ OCL_ASSERTM(std::isnan(gpu_data[index_cur]), log);
+ else if ( gpu_data[index_cur] > FLT_ULP || cpu_data[index_cur] > FLT_ULP)
+ OCL_ASSERTM(fabs( diff / cpu_data[index_cur]) < 3 * FLT_ULP, log);
+ else
+diff --git a/utests/builtin_pow.cpp b/utests/builtin_pow.cpp
+index f586448..21fa895 100644
+--- a/utests/builtin_pow.cpp
++++ b/utests/builtin_pow.cpp
+@@ -74,8 +74,8 @@ static void builtin_pow(void)
+ {
+ index_cur = k * max_function + i;
+ #if udebug
+- if ( (isinf(cpu_data[index_cur]) && !isinf(gpu_data[index_cur])) ||
+- (isnan(cpu_data[index_cur]) && !isnan(gpu_data[index_cur])) ||
++ if ( (std::isinf(cpu_data[index_cur]) && !std::isinf(gpu_data[index_cur])) ||
++ (std::isnan(cpu_data[index_cur]) && !std::isnan(gpu_data[index_cur])) ||
+ (fabs(gpu_data[index_cur] - cpu_data[index_cur]) > cl_FLT_ULP(cpu_data[index_cur]) * ULPSIZE_FACTOR
+ && (denormals_supported || gpu_data[index_cur]!=0 || std::fpclassify(cpu_data[index_cur])!=FP_SUBNORMAL) ) )
+
+@@ -85,10 +85,10 @@ static void builtin_pow(void)
+ else
+ printf("%d/%d: x:%f, y:%f -> gpu:%f cpu:%f\n", k, i, input_data1[k], input_data2[k], gpu_data[index_cur], cpu_data[index_cur]);
+ #else
+- if (isinf(cpu_data[index_cur]))
+- OCL_ASSERT(isinf(gpu_data[index_cur]));
+- else if (isnan(cpu_data[index_cur]))
+- OCL_ASSERT(isnan(gpu_data[index_cur]));
++ if (std::isinf(cpu_data[index_cur]))
++ OCL_ASSERT(std::isinf(gpu_data[index_cur]));
++ else if (std::isnan(cpu_data[index_cur]))
++ OCL_ASSERT(std::isnan(gpu_data[index_cur]));
+ else
+ {
+ OCL_ASSERT((fabs(gpu_data[index_cur] - cpu_data[index_cur]) < cl_FLT_ULP(cpu_data[index_cur]) * ULPSIZE_FACTOR) ||
+diff --git a/utests/builtin_tgamma.cpp b/utests/builtin_tgamma.cpp
+index db9ab3c..204f49e 100644
+--- a/utests/builtin_tgamma.cpp
++++ b/utests/builtin_tgamma.cpp
+@@ -43,8 +43,8 @@ void builtin_tgamma(void)
+ max_ulp = fabsf(cpu - dst[i]) / cl_FLT_ULP(cpu);
+ max_ulp_at = src[i];
+ }
+- if (isinf(cpu)) {
+- OCL_ASSERT(isinf(dst[i]));
++ if (std::isinf(cpu)) {
++ OCL_ASSERT(std::isinf(dst[i]));
+ } else if (fabsf(cpu - dst[i]) >= cl_FLT_ULP(cpu) * ULPSIZE_FACTOR) {
+ printf("%f %f %f\n", src[i], cpu, dst[i]);
+ OCL_ASSERT(0);
+diff --git a/utests/compiler_half.cpp b/utests/compiler_half.cpp
+index d486193..194c308 100644
+--- a/utests/compiler_half.cpp
++++ b/utests/compiler_half.cpp
+@@ -236,7 +236,7 @@ static float half_test_src[half_n] = {
+ OCL_ASSERT(((fabs(fdst[i]) < 6e-8f) && (fabs(f) < 6e-8f)) || \
+ (fabs(f - fdst[i]) <= 0.03 * fabs(fdst[i])) || \
+ (isInf && ((infSign && fdst[i] > 65504.0f) || (!infSign && fdst[i] < -65504.0f))) || \
+- (isnan(f) && isnan(fdst[i]))); \
++ (std::isnan(f) && std::isnan(fdst[i]))); \
+ } \
+ OCL_UNMAP_BUFFER(1); \
+ } \
+@@ -310,7 +310,7 @@ HALF_MATH_TEST_1ARG(ceil, ceilf);
+ OCL_ASSERT(((fabs(fdst[i]) < 6e-8f) && (fabs(f) < 6e-8f)) || \
+ (fabs(f - fdst[i]) <= 0.03 * fabs(fdst[i])) || \
+ (isInf && ((infSign && fdst[i] > 65504.0f) || (!infSign && fdst[i] < -65504.0f))) || \
+- (isnan(f) && isnan(fdst[i]))); \
++ (std::isnan(f) && std::isnan(fdst[i]))); \
+ } \
+ OCL_UNMAP_BUFFER(2); \
+ } \
+diff --git a/utests/compiler_math.cpp b/utests/compiler_math.cpp
+index e0c4487..0c238c9 100644
+--- a/utests/compiler_math.cpp
++++ b/utests/compiler_math.cpp
+@@ -72,10 +72,10 @@ static void compiler_math(void)
+ for (int i = 0; i < 16; ++i) {
+ const float cpu = cpu_dst[i];
+ const float gpu = ((float*)buf_data[0])[i];
+- if (isinf(cpu))
+- OCL_ASSERT(isinf(gpu));
+- else if (isnan(cpu))
+- OCL_ASSERT(isnan(gpu));
++ if (std::isinf(cpu))
++ OCL_ASSERT(std::isinf(gpu));
++ else if (std::isnan(cpu))
++ OCL_ASSERT(std::isnan(gpu));
+ else
+ OCL_ASSERT(fabs(gpu-cpu) < 1e-3f);
+ }
+diff --git a/utests/compiler_math_2op.cpp b/utests/compiler_math_2op.cpp
+index 454967d..d771dba 100644
+--- a/utests/compiler_math_2op.cpp
++++ b/utests/compiler_math_2op.cpp
+@@ -65,10 +65,10 @@ static void compiler_math_2op(void)
+ for (int i = 0; i < 16; ++i) {
+ const float cpu = cpu_dst[i];
+ const float gpu = ((float*)buf_data[0])[i];
+- if (isinf(cpu))
+- OCL_ASSERT(isinf(gpu));
+- else if (isnan(cpu))
+- OCL_ASSERT(isnan(gpu));
++ if (std::isinf(cpu))
++ OCL_ASSERT(std::isinf(gpu));
++ else if (std::isnan(cpu))
++ OCL_ASSERT(std::isnan(gpu));
+ else {
+ OCL_ASSERT(fabs(gpu-cpu) < 1e-3f);
+ }
+diff --git a/utests/compiler_math_3op.cpp b/utests/compiler_math_3op.cpp
+index a382b0a..f90f9d6 100644
+--- a/utests/compiler_math_3op.cpp
++++ b/utests/compiler_math_3op.cpp
+@@ -50,10 +50,10 @@ static void compiler_math_3op(void)
+ for (int i = 0; i < 16; ++i) {
+ const float cpu = cpu_dst[i];
+ const float gpu = ((float*)buf_data[0])[i];
+- if (isinf(cpu))
+- OCL_ASSERT(isinf(gpu));
+- else if (isnan(cpu))
+- OCL_ASSERT(isnan(gpu));
++ if (std::isinf(cpu))
++ OCL_ASSERT(std::isinf(gpu));
++ else if (std::isnan(cpu))
++ OCL_ASSERT(std::isnan(gpu));
+ else
+ OCL_ASSERT(fabs(gpu-cpu) < 1e-3f);
+ }
+diff --git a/utests/utest_generator.py b/utests/utest_generator.py
+index 91cc938..2ab908e 100644
+--- a/utests/utest_generator.py
++++ b/utests/utest_generator.py
+@@ -112,10 +112,10 @@ def udebug(ulpSize,returnType,function):
+ ULPSIZE_FACTOR = select_ulpsize(ULPSIZE_FAST_MATH,ULPSIZE_NO_FAST_MATH);
+ bool fast_math = ULPSIZE_FACTOR == ULPSIZE_FAST_MATH;
+
+- if (isinf(cpu_data[index])){
++ if (std::isinf(cpu_data[index])){
+ INFORNAN="INF";
+ }
+- else if (isnan(cpu_data[index])){
++ else if (std::isnan(cpu_data[index])){
+ INFORNAN="NAN";
+ }
+ else{
+@@ -124,14 +124,14 @@ def udebug(ulpSize,returnType,function):
+ }
+
+ #if udebug
+- if (isinf(cpu_data[index])){
+- if (isinf(gpu_data[index]))
++ if (std::isinf(cpu_data[index])){
++ if (std::isinf(gpu_data[index]))
+ printf("%s expect:%s\\n", log, INFORNAN);
+ else
+ printf_c("%s expect:%s\\n", log, INFORNAN);
+ }
+- else if (isnan(cpu_data[index])){
+- if (isnan(gpu_data[index]))
++ else if (std::isnan(cpu_data[index])){
++ if (std::isnan(gpu_data[index]))
+ printf("%s expect:%s\\n", log, INFORNAN);
+ else
+ printf_c("%s expect:%s\\n", log, INFORNAN);
+@@ -142,13 +142,13 @@ def udebug(ulpSize,returnType,function):
+ else
+ printf_c("%s expect:%s\\n", log, ULPSIZE);
+ #else
+- if (isinf(cpu_data[index])){
++ if (std::isinf(cpu_data[index])){
+ sprintf(log, "%s expect:%s\\n", log, INFORNAN);
+- OCL_ASSERTM(isinf(gpu_data[index]) || fast_math,log);
++ OCL_ASSERTM(std::isinf(gpu_data[index]) || fast_math,log);
+ }
+- else if (isnan(cpu_data[index])){
++ else if (std::isnan(cpu_data[index])){
+ sprintf(log, "%s expect:%s\\n", log, INFORNAN);
+- OCL_ASSERTM(isnan(gpu_data[index]) || fast_math,log);
++ OCL_ASSERTM(std::isnan(gpu_data[index]) || fast_math,log);
+ }
+ else{
+ sprintf(log, "%s expect:%s\\n", log, ULPSIZE);
+diff --git a/utests/utest_math_gen.py b/utests/utest_math_gen.py
+index eca6c87..ac70979 100755
+--- a/utests/utest_math_gen.py
++++ b/utests/utest_math_gen.py
+@@ -490,9 +490,9 @@ static float powr(float x, float y){
+ return 1;
+ else if ((x == +INFINITY) && (y == 0.0f))
+ return NAN;
+- else if (isnan(x) || (x < 0))
++ else if (std::isnan(x) || (x < 0))
+ return NAN;
+- else if ((x >= 0) && (isnan(y)))
++ else if ((x >= 0) && (std::isnan(y)))
+ return NAN;
+ else
+ return powf(x,y);