From cb1f33c6ae840e8dc0f43518daf76e6ed01034f0 Mon Sep 17 00:00:00 2001
From: Joseph Redmon <pjreddie@gmail.com>
Date: Mon, 08 Dec 2014 19:48:57 +0000
Subject: [PATCH] Fixed race condition in server

---
 src/axpy.cl |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/axpy.cl b/src/axpy.cl
index 394d897..04eb534 100644
--- a/src/axpy.cl
+++ b/src/axpy.cl
@@ -1,7 +1,7 @@
-__kernel void axpy(int N, float ALPHA, __global float *X, int INCX, __global float *Y, int INCY)
+__kernel void axpy(int N, float ALPHA, __global float *X, int OFFX, int INCX, __global float *Y, int OFFY, int INCY)
 {
     int i = get_global_id(0);
-    Y[i*INCY] += ALPHA*X[i*INCX];
+    Y[OFFY+i*INCY] += ALPHA*X[OFFX+i*INCX];
 }
 
 __kernel void scal(int N, float ALPHA, __global float *X, int INCX)
@@ -10,9 +10,15 @@
     X[i*INCX] *= ALPHA;
 }
 
-__kernel void copy(int N, __global float *X, int INCX, __global float *Y, int INCY)
+__kernel void mask(int n, __global float *x, __global float *mask, int mod)
 {
     int i = get_global_id(0);
-    Y[i*INCY] = X[i*INCX];
+    x[i] = (mask[(i/mod)*mod] || i%mod == 0) ? x[i] : 0;
+}
+
+__kernel void copy(int N, __global float *X, int OFFX, int INCX, __global float *Y, int OFFY, int INCY)
+{
+    int i = get_global_id(0);
+    Y[i*INCY + OFFY] = X[i*INCX + OFFX];
 }
 

--
Gitblit v1.10.0