Re: [Beignet] [PATCH] support LLVM 3.4

2013-10-14 Thread Zhigang Gong
Hi Yi,

Do you have any update for this patch's testing? Thanks.

On Thu, Sep 26, 2013 at 04:20:04PM +0800, Zhigang Gong wrote:
 Ruiling tell me that llvm3.4 has not been released yet, so we may not switch
 to LLVM 3.4 immediately.
 But we will switch it eventually. For now, just test it with the llvm 3.4
 svn trunk is good enough for us.
 
 And as it will not break llvm 3.3, after the regression test pass, we can
 accept this patch.
 
 -Original Message-
 From: beignet-bounces+zhigang.gong=linux.intel@lists.freedesktop.org
 [mailto:beignet-bounces+zhigang.gong=linux.intel@lists.freedesktop.org]
 On Behalf Of Sun, Yi
 Sent: Thursday, September 26, 2013 2:23 PM
 To: Zhigang Gong; Xing, Homer
 Cc: beignet@lists.freedesktop.org
 Subject: Re: [Beignet] [PATCH] support LLVM 3.4
 
 Hi Zhigang,
 
 I may lose some context.
 So we're upgrading LLVM to 3.4 now? It seems we just get it to 3.3 version.
 
 Thanks
   --Sun, Yi
 
  -Original Message-
  From: beignet-bounces+yi.sun=intel@lists.freedesktop.org
  [mailto:beignet-bounces+yi.sun=intel@lists.freedesktop.org] On 
  Behalf Of Zhigang Gong
  Sent: Wednesday, September 25, 2013 1:42 AM
  To: Xing, Homer
  Cc: beignet@lists.freedesktop.org
  Subject: Re: [Beignet] [PATCH] support LLVM 3.4
  
  Yi,
  
  Could you help to do a fully regression test for llvm 3.4?
  
  On Tue, Sep 24, 2013 at 10:10:46AM +0800, Homer Hsing wrote:
   LLVM 3.3 or earlier version don't support unary addition of vectors, 
   such as ++ int2. This patch supports LLVM 3.4.
   Tested by PIGLIT, no regression.
  
   Signed-off-by: Homer Hsing homer.x...@intel.com
   ---
CMake/FindLLVM.cmake  | 4 ++--
backend/src/backend/program.cpp   | 7 ++-
backend/src/llvm/llvm_gen_backend.cpp | 6 +++---
docs/Beignet.mdwn | 2 +-
4 files changed, 12 insertions(+), 7 deletions(-)
  
   diff --git a/CMake/FindLLVM.cmake b/CMake/FindLLVM.cmake index
   e76ab42..3fa9ad9 100644
   --- a/CMake/FindLLVM.cmake
   +++ b/CMake/FindLLVM.cmake
   @@ -7,9 +7,9 @@
# LLVM_MODULE_LIBS - list of llvm libs for working with modules.
# LLVM_FOUND   - True if llvm found.
if (LLVM_INSTALL_DIR)
   -  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
   llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config DOC 
   llvm-config executable PATHS ${LLVM_INSTALL_DIR} NO_DEFAULT_PATH)
   +  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
   + llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config-3.4 
   + llvm-config DOC llvm-config executable PATHS ${LLVM_INSTALL_DIR}
   + NO_DEFAULT_PATH)
else (LLVM_INSTALL_DIR)
   -  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
   llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config DOC 
   llvm-config executable)
   +  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
   + llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config-3.4 
   + llvm-config DOC llvm-config executable)
endif (LLVM_INSTALL_DIR)
  
if (LLVM_CONFIG_EXECUTABLE)
   diff --git a/backend/src/backend/program.cpp 
   b/backend/src/backend/program.cpp index 68bb17e..9956e11 100644
   --- a/backend/src/backend/program.cpp
   +++ b/backend/src/backend/program.cpp
   @@ -535,7 +535,12 @@ namespace gbe {
llvm::Module *module = Act-takeModule();
  
std::string ErrorInfo;
   -llvm::raw_fd_ostream OS(output,
  ErrorInfo,llvm::raw_fd_ostream::F_Binary);
   +#if (LLVM_VERSION_MAJOR == 3)  (LLVM_VERSION_MINOR  3)
   +auto mode = llvm::sys::fs::F_Binary; #else
   +auto mode = llvm::raw_fd_ostream::F_Binary; #endif
   +llvm::raw_fd_ostream OS(output, ErrorInfo, mode);
//still write to temp file for code simply, otherwise need add 
   another
  function.
//because gbe_program_new_from_llvm also be used by
  cl_program_create_from_llvm, can't be removed
//TODO: Pass module to llvmToGen, if use module, should return 
   Act and use OwningPtr out of this funciton diff --git 
   a/backend/src/llvm/llvm_gen_backend.cpp
   b/backend/src/llvm/llvm_gen_backend.cpp
   index fd42dca..c8c0866 100644
   --- a/backend/src/llvm/llvm_gen_backend.cpp
   +++ b/backend/src/llvm/llvm_gen_backend.cpp
   @@ -154,9 +154,9 @@
#define LLVM_VERSION_MINOR 0
#endif /* !defined(LLVM_VERSION_MINOR) */
  
   -#if (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR  3) -#error 
   Only LLVM 3.0 - 3.3 is supported
   -#endif /* (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR  3) */
   +#if (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR  4) #error 
   +Only LLVM 3.0 - 3.4 is supported
   +#endif /* (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR  4) */
  
using namespace llvm;
  
   diff --git a/docs/Beignet.mdwn b/docs/Beignet.mdwn index 
   c0f88de..86a235e 100644
   --- a/docs/Beignet.mdwn
   +++ b/docs/Beignet.mdwn
   @@ -55,7 +55,7 @@ with any thing older.
  
[http://llvm.org/releases/](http://llvm.org/releases/)
  
   -LLVM 

Re: [Beignet] [PATCH] support LLVM 3.4

2013-10-14 Thread Xing, Homer
Thanks!

-Original Message-
From: Yang, Rong R 
Sent: Monday, October 14, 2013 3:24 PM
To: Xing, Homer; beignet@lists.freedesktop.org
Subject: RE: [Beignet] [PATCH] support LLVM 3.4

Update to llvm 3.4 svn, all utest pass.

-Original Message-
From: beignet-bounces+rong.r.yang=intel@lists.freedesktop.org 
[mailto:beignet-bounces+rong.r.yang=intel@lists.freedesktop.org] On Behalf 
Of Homer Hsing
Sent: Tuesday, September 24, 2013 10:11 AM
To: beignet@lists.freedesktop.org
Subject: [Beignet] [PATCH] support LLVM 3.4

LLVM 3.3 or earlier version don't support unary addition of vectors, such as 
++ int2. This patch supports LLVM 3.4.
Tested by PIGLIT, no regression.

Signed-off-by: Homer Hsing homer.x...@intel.com
---
 CMake/FindLLVM.cmake  | 4 ++--
 backend/src/backend/program.cpp   | 7 ++-
 backend/src/llvm/llvm_gen_backend.cpp | 6 +++---
 docs/Beignet.mdwn | 2 +-
 4 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/CMake/FindLLVM.cmake b/CMake/FindLLVM.cmake index e76ab42..3fa9ad9 
100644
--- a/CMake/FindLLVM.cmake
+++ b/CMake/FindLLVM.cmake
@@ -7,9 +7,9 @@
 # LLVM_MODULE_LIBS - list of llvm libs for working with modules.
 # LLVM_FOUND   - True if llvm found.
 if (LLVM_INSTALL_DIR)
-  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32 llvm-config-3.2 
llvm-config-31 llvm-config-3.1 llvm-config DOC llvm-config executable PATHS 
${LLVM_INSTALL_DIR} NO_DEFAULT_PATH)
+  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
+ llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config-3.4 
+ llvm-config DOC llvm-config executable PATHS ${LLVM_INSTALL_DIR}
+ NO_DEFAULT_PATH)
 else (LLVM_INSTALL_DIR)
-  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32 llvm-config-3.2 
llvm-config-31 llvm-config-3.1 llvm-config DOC llvm-config executable)
+  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
+ llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config-3.4 
+ llvm-config DOC llvm-config executable)
 endif (LLVM_INSTALL_DIR)
 
 if (LLVM_CONFIG_EXECUTABLE)
diff --git a/backend/src/backend/program.cpp b/backend/src/backend/program.cpp 
index 68bb17e..9956e11 100644
--- a/backend/src/backend/program.cpp
+++ b/backend/src/backend/program.cpp
@@ -535,7 +535,12 @@ namespace gbe {
 llvm::Module *module = Act-takeModule();
 
 std::string ErrorInfo;
-llvm::raw_fd_ostream OS(output, ErrorInfo,llvm::raw_fd_ostream::F_Binary);
+#if (LLVM_VERSION_MAJOR == 3)  (LLVM_VERSION_MINOR  3)
+auto mode = llvm::sys::fs::F_Binary; #else
+auto mode = llvm::raw_fd_ostream::F_Binary; #endif
+llvm::raw_fd_ostream OS(output, ErrorInfo, mode);
 //still write to temp file for code simply, otherwise need add another 
function.
 //because gbe_program_new_from_llvm also be used by 
cl_program_create_from_llvm, can't be removed
 //TODO: Pass module to llvmToGen, if use module, should return Act and use 
OwningPtr out of this funciton diff --git 
a/backend/src/llvm/llvm_gen_backend.cpp b/backend/src/llvm/llvm_gen_backend.cpp
index fd42dca..c8c0866 100644
--- a/backend/src/llvm/llvm_gen_backend.cpp
+++ b/backend/src/llvm/llvm_gen_backend.cpp
@@ -154,9 +154,9 @@
 #define LLVM_VERSION_MINOR 0
 #endif /* !defined(LLVM_VERSION_MINOR) */
 
-#if (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR  3) -#error Only LLVM 
3.0 - 3.3 is supported
-#endif /* (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR  3) */
+#if (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR  4) #error Only 
+LLVM 3.0 - 3.4 is supported
+#endif /* (LLVM_VERSION_MAJOR != 3) || (LLVM_VERSION_MINOR  4) */
 
 using namespace llvm;
 
diff --git a/docs/Beignet.mdwn b/docs/Beignet.mdwn index c0f88de..86a235e 100644
--- a/docs/Beignet.mdwn
+++ b/docs/Beignet.mdwn
@@ -55,7 +55,7 @@ with any thing older.
 
 [http://llvm.org/releases/](http://llvm.org/releases/)
 
-LLVM 3.1,3.2 and 3.3 are supported.
+LLVM 3.1,3.2,3.3 and 3.4 are supported.
 
 Also note that the code was compiled on GCC 4.6 and GCC 4.7. Since the code 
uses  really recent C++11 features, you may expect problems with older 
compilers. Last
--
1.8.1.2

___
Beignet mailing list
Beignet@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/beignet
___
Beignet mailing list
Beignet@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/beignet


Re: [Beignet] [PATCH] support LLVM 3.4

2013-10-14 Thread Zhigang Gong
If you haven't tested it with gcc3.4 then no need to upgrade your
environment to 3.4. Rong already did that test.
I will push this patch latter. Thanks.

-Original Message-
From: beignet-bounces+zhigang.gong=linux.intel@lists.freedesktop.org
[mailto:beignet-bounces+zhigang.gong=linux.intel@lists.freedesktop.org]
On Behalf Of Sun, Yi
Sent: Monday, October 14, 2013 3:31 PM
To: Zhigang Gong; Xing, Homer
Cc: beignet@lists.freedesktop.org
Subject: Re: [Beignet] [PATCH] support LLVM 3.4

Sorry not yet. So is it necessary? 
I'm just worrying about if it can roll back successfully after I update to
3.4?
I'll have a quick test if it is necessary and can be roll back to 3.3.

Thanks
  --Sun, Yi

 -Original Message-
 From: Zhigang Gong [mailto:zhigang.g...@linux.intel.com]
 Sent: Monday, October 14, 2013 2:52 PM
 To: Sun, Yi; Xing, Homer
 Cc: beignet@lists.freedesktop.org
 Subject: Re: [Beignet] [PATCH] support LLVM 3.4
 
 Hi Yi,
 
 Do you have any update for this patch's testing? Thanks.
 
 On Thu, Sep 26, 2013 at 04:20:04PM +0800, Zhigang Gong wrote:
  Ruiling tell me that llvm3.4 has not been released yet, so we may 
  not switch to LLVM 3.4 immediately.
  But we will switch it eventually. For now, just test it with the 
  llvm
  3.4 svn trunk is good enough for us.
 
  And as it will not break llvm 3.3, after the regression test pass, 
  we can accept this patch.
 
  -Original Message-
  From:
  beignet-bounces+zhigang.gong=linux.intel@lists.freedesktop.org
  [mailto:beignet-bounces+zhigang.gong=linux.intel.com@lists.freedeskt
  op
  .org]
  On Behalf Of Sun, Yi
  Sent: Thursday, September 26, 2013 2:23 PM
  To: Zhigang Gong; Xing, Homer
  Cc: beignet@lists.freedesktop.org
  Subject: Re: [Beignet] [PATCH] support LLVM 3.4
 
  Hi Zhigang,
 
  I may lose some context.
  So we're upgrading LLVM to 3.4 now? It seems we just get it to 3.3
version.
 
  Thanks
--Sun, Yi
 
   -Original Message-
   From: beignet-bounces+yi.sun=intel@lists.freedesktop.org
   [mailto:beignet-bounces+yi.sun=intel@lists.freedesktop.org] On 
   Behalf Of Zhigang Gong
   Sent: Wednesday, September 25, 2013 1:42 AM
   To: Xing, Homer
   Cc: beignet@lists.freedesktop.org
   Subject: Re: [Beignet] [PATCH] support LLVM 3.4
  
   Yi,
  
   Could you help to do a fully regression test for llvm 3.4?
  
   On Tue, Sep 24, 2013 at 10:10:46AM +0800, Homer Hsing wrote:
LLVM 3.3 or earlier version don't support unary addition of 
vectors, such as ++ int2. This patch supports LLVM 3.4.
Tested by PIGLIT, no regression.
   
Signed-off-by: Homer Hsing homer.x...@intel.com
---
 CMake/FindLLVM.cmake  | 4 ++--
 backend/src/backend/program.cpp   | 7 ++-
 backend/src/llvm/llvm_gen_backend.cpp | 6 +++---
 docs/Beignet.mdwn | 2 +-
 4 files changed, 12 insertions(+), 7 deletions(-)
   
diff --git a/CMake/FindLLVM.cmake b/CMake/FindLLVM.cmake index
e76ab42..3fa9ad9 100644
--- a/CMake/FindLLVM.cmake
+++ b/CMake/FindLLVM.cmake
@@ -7,9 +7,9 @@
 # LLVM_MODULE_LIBS - list of llvm libs for working with modules.
 # LLVM_FOUND   - True if llvm found.
 if (LLVM_INSTALL_DIR)
-  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config DOC 
llvm-config executable PATHS ${LLVM_INSTALL_DIR}
NO_DEFAULT_PATH)
+  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
+ llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config-3.4 
+ llvm-config DOC llvm-config executable PATHS 
+ ${LLVM_INSTALL_DIR}
+ NO_DEFAULT_PATH)
 else (LLVM_INSTALL_DIR)
-  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config DOC 
llvm-config executable)
+  find_program(LLVM_CONFIG_EXECUTABLE NAMES llvm-config-32
+ llvm-config-3.2 llvm-config-31 llvm-config-3.1 llvm-config-3.4 
+ llvm-config DOC llvm-config executable)
 endif (LLVM_INSTALL_DIR)
   
 if (LLVM_CONFIG_EXECUTABLE)
diff --git a/backend/src/backend/program.cpp 
b/backend/src/backend/program.cpp index 68bb17e..9956e11 100644
--- a/backend/src/backend/program.cpp
+++ b/backend/src/backend/program.cpp
@@ -535,7 +535,12 @@ namespace gbe {
 llvm::Module *module = Act-takeModule();
   
 std::string ErrorInfo;
-llvm::raw_fd_ostream OS(output,
   ErrorInfo,llvm::raw_fd_ostream::F_Binary);
+#if (LLVM_VERSION_MAJOR == 3)  (LLVM_VERSION_MINOR  3)
+auto mode = llvm::sys::fs::F_Binary; #else
+auto mode = llvm::raw_fd_ostream::F_Binary; #endif
+llvm::raw_fd_ostream OS(output, ErrorInfo, mode);
 //still write to temp file for code simply, otherwise need 
add another
   function.
 //because gbe_program_new_from_llvm also be used by
   cl_program_create_from_llvm, can't be removed
 //TODO: Pass module to 

Re: [Beignet] [PATCH] Delete the redundant intel_batchbuffer_t init in intel_gpgpu_new

2013-10-14 Thread Zhigang Gong
Pushed, thanks.

On Fri, Oct 11, 2013 at 10:43:41AM +0800, junyan...@inbox.com wrote:
 From: Junyan He junyan...@linux.intel.com
 
 Signed-off-by: Junyan He junyan...@linux.intel.com
 ---
  src/intel/intel_gpgpu.c |1 -
  1 file changed, 1 deletion(-)
 
 diff --git a/src/intel/intel_gpgpu.c b/src/intel/intel_gpgpu.c
 index 5d93a67..21cf09b 100644
 --- a/src/intel/intel_gpgpu.c
 +++ b/src/intel/intel_gpgpu.c
 @@ -158,7 +158,6 @@ intel_gpgpu_new(intel_driver_t *drv)
state-drv = drv;
state-batch = intel_batchbuffer_new(state-drv);
assert(state-batch);
 -  intel_batchbuffer_init(state-batch, state-drv);
  
  exit:
return state;
 -- 
 1.7.9.5
 
 ___
 Beignet mailing list
 Beignet@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/beignet
___
Beignet mailing list
Beignet@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/beignet


Re: [Beignet] [PATCH 1/2] GBE: Support local variable inside kernel function.

2013-10-14 Thread Zhigang Gong
Pushed, thanks.

On Thu, Oct 10, 2013 at 03:13:50PM +0800, Ruiling Song wrote:
 As Clang treat local variable in similar way like global constant,
 (they are treated as Global variable in each own address space)
 we refine the previous constant implementation in order to
 share same code between local variable and global constant.
 
 We will allocate an address register for each GlobalVariable
 (constant or local) through calling newRegister().
 In later step, through getRegister() we will get a proper
 register derived from the allocated address register.
 
 Signed-off-by: Ruiling Song ruiling.s...@intel.com
 ---
  backend/src/backend/context.cpp   |1 +
  backend/src/backend/program.cpp   |   10 ++-
  backend/src/backend/program.h |3 +
  backend/src/backend/program.hpp   |3 +
  backend/src/ir/function.cpp   |2 +-
  backend/src/ir/function.hpp   |5 ++
  backend/src/llvm/llvm_gen_backend.cpp |  157 
 ++---
  kernels/compiler_local_slm.cl |   28 --
  src/cl_command_queue_gen7.c   |3 +-
  utests/CMakeLists.txt |1 +
  utests/compiler_local_slm.cpp |   30 ++-
  11 files changed, 179 insertions(+), 64 deletions(-)
 
 diff --git a/backend/src/backend/context.cpp b/backend/src/backend/context.cpp
 index cbd38f1..bc15761 100644
 --- a/backend/src/backend/context.cpp
 +++ b/backend/src/backend/context.cpp
 @@ -632,6 +632,7 @@ namespace gbe
void Context::handleSLM(void) {
  const bool useSLM = fn.getUseSLM();
  kernel-useSLM = useSLM;
 +kernel-slmSize = fn.getSLMSize();
}
  
bool Context::isScalarReg(const ir::Register reg) const {
 diff --git a/backend/src/backend/program.cpp b/backend/src/backend/program.cpp
 index 6550eac..24029c7 100644
 --- a/backend/src/backend/program.cpp
 +++ b/backend/src/backend/program.cpp
 @@ -75,7 +75,7 @@
  namespace gbe {
  
Kernel::Kernel(const std::string name) :
 -name(name), args(NULL), argNum(0), curbeSize(0), stackSize(0), 
 useSLM(false), ctx(NULL), samplerSet(NULL), imageSet(NULL)
 +name(name), args(NULL), argNum(0), curbeSize(0), stackSize(0), 
 useSLM(false), slmSize(0), ctx(NULL), samplerSet(NULL), imageSet(NULL)
{}
Kernel::~Kernel(void) {
  if(ctx) GBE_DELETE(ctx);
 @@ -709,6 +709,12 @@ namespace gbe {
  return kernel-getUseSLM() ? 1 : 0;
}
  
 +  static int32_t kernelGetSLMSize(gbe_kernel genKernel) {
 +if (genKernel == NULL) return 0;
 +const gbe::Kernel *kernel = (const gbe::Kernel*) genKernel;
 +return kernel-getSLMSize();
 +  }
 +
static int32_t kernelSetConstBufSize(gbe_kernel genKernel, uint32_t argID, 
 size_t sz) {
  if (genKernel == NULL) return -1;
  gbe::Kernel *kernel = (gbe::Kernel*) genKernel;
 @@ -776,6 +782,7 @@ GBE_EXPORT_SYMBOL gbe_kernel_get_scratch_size_cb 
 *gbe_kernel_get_scratch_size =
  GBE_EXPORT_SYMBOL gbe_kernel_set_const_buffer_size_cb 
 *gbe_kernel_set_const_buffer_size = NULL;
  GBE_EXPORT_SYMBOL gbe_kernel_get_required_work_group_size_cb 
 *gbe_kernel_get_required_work_group_size = NULL;
  GBE_EXPORT_SYMBOL gbe_kernel_use_slm_cb *gbe_kernel_use_slm = NULL;
 +GBE_EXPORT_SYMBOL gbe_kernel_get_slm_size_cb *gbe_kernel_get_slm_size = NULL;
  GBE_EXPORT_SYMBOL gbe_kernel_get_sampler_size_cb 
 *gbe_kernel_get_sampler_size = NULL;
  GBE_EXPORT_SYMBOL gbe_kernel_get_sampler_data_cb 
 *gbe_kernel_get_sampler_data = NULL;
  GBE_EXPORT_SYMBOL gbe_kernel_get_image_size_cb *gbe_kernel_get_image_size = 
 NULL;
 @@ -810,6 +817,7 @@ namespace gbe
gbe_kernel_set_const_buffer_size = gbe::kernelSetConstBufSize;
gbe_kernel_get_required_work_group_size = 
 gbe::kernelGetRequiredWorkGroupSize;
gbe_kernel_use_slm = gbe::kernelUseSLM;
 +  gbe_kernel_get_slm_size = gbe::kernelGetSLMSize;
gbe_kernel_get_sampler_size = gbe::kernelGetSamplerSize;
gbe_kernel_get_sampler_data = gbe::kernelGetSamplerData;
gbe_kernel_get_image_size = gbe::kernelGetImageSize;
 diff --git a/backend/src/backend/program.h b/backend/src/backend/program.h
 index 8774344..10fcc49 100644
 --- a/backend/src/backend/program.h
 +++ b/backend/src/backend/program.h
 @@ -218,6 +218,9 @@ extern gbe_kernel_get_required_work_group_size_cb 
 *gbe_kernel_get_required_work_
  /*! Says if SLM is used. Required to reconfigure the L3 complex */
  typedef int32_t (gbe_kernel_use_slm_cb)(gbe_kernel);
  extern gbe_kernel_use_slm_cb *gbe_kernel_use_slm;
 +/*! Get slm size needed for kernel local variables */
 +typedef int32_t (gbe_kernel_get_slm_size_cb)(gbe_kernel);
 +extern gbe_kernel_get_slm_size_cb *gbe_kernel_get_slm_size;
  
  #ifdef __cplusplus
  }
 diff --git a/backend/src/backend/program.hpp b/backend/src/backend/program.hpp
 index 28a792d..895cd01 100644
 --- a/backend/src/backend/program.hpp
 +++ b/backend/src/backend/program.hpp
 @@ -104,6 +104,8 @@ namespace gbe {
  INLINE uint32_t getSIMDWidth(void) const { return this-simdWidth; }
 

[Beignet] Backend visible to other apps?

2013-10-14 Thread Ian Daniher
Hey All!

I have beignet unit tests working, but pyopencl / rust-opencl / etc can't
find the backend.

I'm pretty sure I need to add something to /etc/OpenCL/vendors to make
beignet's presence known, but this doesn't seem to be done automatically
and documentation is spotty.

I'd love any pointers!

Thanks,
--
Ian
___
Beignet mailing list
Beignet@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/beignet


Re: [Beignet] Backend visible to other apps?

2013-10-14 Thread Simon Richter
Hi Ian,

On 14.10.2013 20:22, Ian Daniher wrote:

 I'm pretty sure I need to add something to /etc/OpenCL/vendors to make
 beignet's presence known, but this doesn't seem to be done automatically
 and documentation is spotty.

You need two things: the library needs to be built with ICD support
enabled (for that, you need ICD development headers), and a file in
/etc/OpenCL/vendors needs to point at the library (simply use the full
path as the file contents).

If you use Debian, the packages handle this.

   Simon
___
Beignet mailing list
Beignet@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/beignet


Re: [Beignet] Backend visible to other apps?

2013-10-14 Thread Steven Newbury
On Mon, 2013-10-14 at 20:48 +0200, Simon Richter wrote:
 Hi Ian,
 
 On 14.10.2013 20:22, Ian Daniher wrote:
 
  I'm pretty sure I need to add something to /etc/OpenCL/vendors to make
  beignet's presence known, but this doesn't seem to be done automatically
  and documentation is spotty.
 
 You need two things: the library needs to be built with ICD support
 enabled (for that, you need ICD development headers), and a file in
 /etc/OpenCL/vendors needs to point at the library (simply use the full
 path as the file contents).
 
 If you use Debian, the packages handle this.
 
If you use Gentoo I have a live ebuild which works well and integrates
with the Gentoo OpenCL infrastructure. (for gx86 multilib too;
amd64/x86)  I need to update my public overlay though.  I'll do that and
provide a link if requested.


___
Beignet mailing list
Beignet@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/beignet