From 840ffeebeb6ace49081bf6687c5fb8936bbb82d6 Mon Sep 17 00:00:00 2001
From: Zhigang Gong backend/README.md
There are two ways to build Beignet.
- -The first one uses a simple Makefile. Just type make
and the project will
-build if everything is properly installed.
The project also uses CMake with three profiles:
+The project uses CMake with three profiles:
./kernels
.
As an important remark, the code was only tested on IVB GT2 with a rather -minimal Linux distribution (ArchLinux) and a very small desktop (dwm). If you -use something more sophisticated using compiz or similar stuffs, you may expect -serious problems and GPU hangs.
- -Only IVB is supported right now. Actually, the code was only run on IVB GT2. You +
The code was tested on IVB GT2 with ubuntu and fedora core distribution. +Currently Only IVB is supported right now. Actually, the code was only run on IVB GT2. You may expect some issues with IVB GT1.
Support dynamic sampler assignment in kernel. We now only support user to use -clCreateSampler at host side and then pass the sampler to kernel.
Complete cl_khr_gl_sharing support. We lack of some APIs implementation such as clCreateFromGLBuffer,clCreateFromGLRenderbuffer,clGetGLObjectInfo... Currently, the working APIs are clCreateFromGLTexture,clCreateFromGLTexture2D.
Valgrind reports some leaks in libdrm. It sounds like a false positive but it has to be checked. Idem for LLVM. There is one leak here to check.
Support image/samplers in C++ simulator.
More generally, everything in the run-time that triggers the "FATAL" macro means that something that must be supported is not implemented properly (either it does not comply with the standard or it is just missing)
-Project repository
+Right now, we host our project on fdo at: git://anongit.freedesktop.org/beignet.
@@ -136,6 +124,11 @@ does not comply with the standard or it is just missing)This project was created by Ben Segovia when he was working for Intel. Now we have a team in China OTC graphics department continue to work on this project. -We haven't set up a public mail list for this project, but we will do so in -the near furture. Before that, the contact is as below: -Zou Nanhai (nanhai.zou@intel.com).
+The official contact for this project is: Zou Nanhai (nanhai.zou@intel.com). + +You are always welcome to contribute to this project, just need to subscribe +to the beignet mail list and send patches to it for review. +The official mail list is as below: +http://lists.freedesktop.org/mailman/listinfo/beignet
diff --git a/README.md b/README.md index e76aba1..6e74112 100644 --- a/README.md +++ b/README.md @@ -12,12 +12,7 @@ about the compiler, please refer to `backend/README.md` How to build ------------ -There are two ways to build Beignet. - -The first one uses a simple Makefile. Just type `make` and the project will -build if everything is properly installed. - -The project also uses CMake with three profiles: +The project uses CMake with three profiles: 1. Debug (-g) 2. RelWithDebInfo (-g with optimizations) @@ -91,12 +86,8 @@ will only run `some_unit_test0` and `some_unit_test1` tests Supported Hardware ------------------ -As an important remark, the code was only tested on IVB GT2 with a rather -minimal Linux distribution (ArchLinux) and a very small desktop (dwm). If you -use something more sophisticated using compiz or similar stuffs, you may expect -serious problems and GPU hangs. - -Only IVB is supported right now. Actually, the code was only run on IVB GT2. You +The code was tested on IVB GT2 with ubuntu and fedora core distribution. +Currently Only IVB is supported right now. Actually, the code was only run on IVB GT2. You may expect some issues with IVB GT1. TODO @@ -106,9 +97,6 @@ The run-time is far from being complete. Most of the pieces have been put together to test and develop the OpenCL compiler. A partial list of things to do: -- Support dynamic sampler assignment in kernel. We now only support user to use - clCreateSampler at host side and then pass the sampler to kernel. - - Complete cl\_khr\_gl\_sharing support. We lack of some APIs implementation such as clCreateFromGLBuffer,clCreateFromGLRenderbuffer,clGetGLObjectInfo... Currently, the working APIs are clCreateFromGLTexture,clCreateFromGLTexture2D. @@ -128,20 +116,23 @@ do: - Valgrind reports some leaks in libdrm. It sounds like a false positive but it has to be checked. Idem for LLVM. There is one leak here to check. -- Support image/samplers in C++ simulator. - More generally, everything in the run-time that triggers the "FATAL" macro means that something that must be supported is not implemented properly (either it does not comply with the standard or it is just missing) Project repository - +------------------ Right now, we host our project on fdo at: git://anongit.freedesktop.org/beignet. The team -------- This project was created by Ben Segovia when he was working for Intel. Now we have a team in China OTC graphics department continue to work on this project. -We haven't set up a public mail list for this project, but we will do so in -the near furture. Before that, the contact is as below: -Zou Nanhai (mad
, atomic operations, barriers...).
Lowering down of int16 / int8 / float16 / char16 / char8 / char4 loads and stores into the supported loads and stores
Support for constant buffers declared in the OpenCL source file
Support for local declaration of local array (the OpenCL profile will properly declare them as global arrays)
Support for doubles
Support atomic extensions.
Better resolving of the PHI functions. Today, we always generate MOV instructions at the end of each basic block . They can be easily optimized.
Bringing support for doubles
Adding support for atomic extensions.
Finishing the handling of function arguments (see the IR description for more details)
Adding support for constant data per unit
Adding support for linking IR units together. OpenCL indeed allows to create programs from several sources
Uniform analysys. This is a major performance improvement. A "uniform" value @@ -63,11 +63,12 @@ allocation.
Implementing support for doubles
Implementing atomic extensions.
Implementing register spilling (see the compiler backend description for more details)
Implementing proper instruction selection. A "simple" tree matching algorithm should provide good results for Gen
Implementing the instruction scheduling pass
Improving the instruction scheduling pass