[Beignet] [PATCH v8 2/2] test builtin function "shuffle"

Xing, Homer homer.xing at intel.com
Wed Jul 24 00:00:54 PDT 2013


Well. Looks like we both modified same files at the same time today.

I will do manual code merging and sent out patches later. Please merge the patches to master tree. Thanks.

-----Original Message-----
From: beignet-bounces+homer.xing=intel.com at lists.freedesktop.org [mailto:beignet-bounces+homer.xing=intel.com at lists.freedesktop.org] On Behalf Of Zhigang Gong
Sent: Wednesday, July 24, 2013 2:40 PM
To: Xing, Homer
Cc: beignet at lists.freedesktop.org
Subject: Re: [Beignet] [PATCH v8 2/2] test builtin function "shuffle"

Homer,

All the patches before this email have been pushed to the master branch right now.

As there is a big change in the ocl_stdlib.h due to python autogen scripts and pch patches (merge all header files into one), you have to manually merge the following v9/v10/... patches into current master branch. Rebase your local branch will not help here.

The header file is move to ocl_stdlib.tmpl.h. Any question, please feel free to contact me directly.

On Wed, Jul 24, 2013 at 11:05:11AM +0800, Homer Hsing wrote:
> 
> Signed-off-by: Homer Hsing <homer.xing at intel.com>
> ---
>  kernels/builtin_shuffle.cl |  8 ++++++++
>  utests/CMakeLists.txt      |  1 +
>  utests/builtin_shuffle.cpp | 45 
> +++++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 54 insertions(+)
>  create mode 100644 kernels/builtin_shuffle.cl  create mode 100644 
> utests/builtin_shuffle.cpp
> 
> diff --git a/kernels/builtin_shuffle.cl b/kernels/builtin_shuffle.cl 
> new file mode 100644 index 0000000..ad988b9
> --- /dev/null
> +++ b/kernels/builtin_shuffle.cl
> @@ -0,0 +1,8 @@
> +kernel void builtin_shuffle(global float *src1, global float *src2, 
> +global float *dst1, global float *dst2) {
> +  int i = get_global_id(0);
> +  float2 src = (float2)(src1[i], src2[i]);
> +  uint2 mask = (uint2)(1, 0);
> +  float2 dst = shuffle(src, mask);
> +  dst1[i] = dst.s0;
> +  dst2[i] = dst.s1;
> +}
> diff --git a/utests/CMakeLists.txt b/utests/CMakeLists.txt index 
> 5dbae30..702b1f9 100644
> --- a/utests/CMakeLists.txt
> +++ b/utests/CMakeLists.txt
> @@ -106,6 +106,7 @@ set (utests_sources
>    builtin_modf.cpp
>    builtin_nextafter.cpp
>    builtin_remquo.cpp
> +  builtin_shuffle.cpp
>    builtin_sign.cpp
>    buildin_work_dim.cpp
>    builtin_global_size.cpp
> diff --git a/utests/builtin_shuffle.cpp b/utests/builtin_shuffle.cpp 
> new file mode 100644 index 0000000..c7fa86b
> --- /dev/null
> +++ b/utests/builtin_shuffle.cpp
> @@ -0,0 +1,45 @@
> +#include "utest_helper.hpp"
> +
> +void builtin_shuffle(void)
> +{
> +  const int n = 32;
> +
> +  // Setup kernel and buffers
> +  OCL_CREATE_KERNEL("builtin_shuffle");
> +  OCL_CREATE_BUFFER(buf[0], 0, n * sizeof(float), NULL);  
> + OCL_CREATE_BUFFER(buf[1], 0, n * sizeof(float), NULL);  
> + OCL_CREATE_BUFFER(buf[2], 0, n * sizeof(float), NULL);  
> + OCL_CREATE_BUFFER(buf[3], 0, n * sizeof(float), NULL);  
> + OCL_SET_ARG(0, sizeof(cl_mem), &buf[0]);  OCL_SET_ARG(1, 
> + sizeof(cl_mem), &buf[1]);  OCL_SET_ARG(2, sizeof(cl_mem), &buf[2]);  
> + OCL_SET_ARG(3, sizeof(cl_mem), &buf[3]);  globals[0] = n;  locals[0] 
> + = 16;
> +
> +  OCL_MAP_BUFFER(0);
> +  OCL_MAP_BUFFER(1);
> +  for (int i = 0; i < n; i ++) {
> +    ((float *)(buf_data[0]))[i] = rand();
> +    ((float *)(buf_data[1]))[i] = rand();  }  OCL_UNMAP_BUFFER(0);  
> + OCL_UNMAP_BUFFER(1);
> +
> +  OCL_NDRANGE(1);
> +
> +  OCL_MAP_BUFFER(0);
> +  OCL_MAP_BUFFER(1);
> +  OCL_MAP_BUFFER(2);
> +  OCL_MAP_BUFFER(3);
> +  for (int i = 0; i < n; i ++) {
> +    OCL_ASSERT(((float *)(buf_data[0]))[i] == ((float *)(buf_data[3]))[i]);
> +    OCL_ASSERT(((float *)(buf_data[1]))[i] == ((float 
> +*)(buf_data[2]))[i]);
> +  }
> +  OCL_UNMAP_BUFFER(0);
> +  OCL_UNMAP_BUFFER(1);
> +  OCL_UNMAP_BUFFER(2);
> +  OCL_UNMAP_BUFFER(3);
> +}
> +
> +MAKE_UTEST_FROM_FUNCTION(builtin_shuffle);
> --
> 1.8.1.2
> 
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet
_______________________________________________
Beignet mailing list
Beignet at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/beignet


More information about the Beignet mailing list