From 840ffeebeb6ace49081bf6687c5fb8936bbb82d6 Mon Sep 17 00:00:00 2001 From: Zhigang Gong Date: Fri, 24 May 2013 12:02:15 +0800 Subject: [PATCH] Update documents. Signed-off-by: Zhigang Gong Tested-by: Lv, Meng Reviewed-by: Yang Rong --- README.html | 31 ++++++++++++------------------- README.md | 33 ++++++++++++--------------------- backend/doc/TODO.html | 7 ++++--- backend/doc/TODO.md | 12 +++++++----- 4 files changed, 35 insertions(+), 48 deletions(-) diff --git a/README.html b/README.html index c5fcba8..4136d82 100644 --- a/README.html +++ b/README.html @@ -10,12 +10,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. @@ -91,12 +86,8 @@ are with the run-time in ./kernels.

    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,8 +97,6 @@ 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.

    • @@ -121,14 +110,13 @@ implement those Enqueue*Buffer functions.

      expensive pipe controls are issued for each batch buffer

    • 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

    +

    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).

    + +

    How to contribute

    + +

    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 (). +The official contact for this project is: Zou Nanhai (). + +How to contribute +----------------- +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/backend/doc/TODO.html b/backend/doc/TODO.html index 27d1d81..36c2951 100644 --- a/backend/doc/TODO.html +++ b/backend/doc/TODO.html @@ -26,10 +26,10 @@ many things must be implemented:

    mad, atomic operations, barriers...).

  3. Lowering down of int16 / int8 / float16 / char16 / char8 / char4 loads and stores into the supported loads and stores

  4. -
  5. Support for constant buffers declared in the OpenCL source file

  6. Support for local declaration of local array (the OpenCL profile will properly declare them as global arrays)

  7. Support for doubles

  8. +
  9. Support atomic extensions.

  10. Better resolving of the PHI functions. Today, we always generate MOV instructions at the end of each basic block . They can be easily optimized.

  11. @@ -40,9 +40,9 @@ 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

      General plumbing

      diff --git a/backend/doc/TODO.md b/backend/doc/TODO.md index 60d6c09..584dec5 100644 --- a/backend/doc/TODO.md +++ b/backend/doc/TODO.md @@ -31,13 +31,13 @@ many things must be implemented: - 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. @@ -48,11 +48,11 @@ The code is defined in `src/ir`. Main things to do are: - Bringing support for doubles +- Adding support for atomic extensions. + - Finishing the handling of function arguments (see the [IR description](gen_ir.html) 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 @@ -75,13 +75,15 @@ The code is defined in `src/backend`. Main things to do are: - Implementing support for doubles +- Implementing atomic extensions. + - Implementing register spilling (see the [compiler backend description](./compiler_backend.html) 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 General plumbing ---------------- -- 2.7.4