|author||rongyang <rongyang@web>||2017-03-23 07:28:25 +0000|
|committer||www <firstname.lastname@example.org>||2017-03-23 07:28:25 +0000|
Diffstat (limited to 'Software/Beignet.mdwn')
1 files changed, 25 insertions, 11 deletions
diff --git a/Software/Beignet.mdwn b/Software/Beignet.mdwn
index 01be534f..1c86dda4 100644
@@ -16,7 +16,7 @@ News
-The project depends on the following external libaries:
+The project depends on the following external libraries:
- libdrm libraries (libdrm and libdrm\_intel)
- Various LLVM components
@@ -29,11 +29,12 @@ two more packages (the following package name is for Ubuntu):
If you don't want to enable ICD, or your system doesn't have ICD OpenCL support,
-you can still link to the beignet OpenCL library. You can find the beignet/libcl.so
+you must explicitly disable ICD support by running cmake with option `-DOCLICD_COMPAT=0`
+then you can still link to the beignet OpenCL library. You can find the beignet/libcl.so
in your system's library installation directories.
Note that the compiler depends on LLVM (Low-Level Virtual Machine project), and the
-project normally support 3 latest LLVM released version.
+project normally supports the 3 latest LLVM released versions.
Right now, the code has been compiled with LLVM 3.6, 3.7 and 3.8. With older
version LLVM from 3.3, build still support, but no full tests cover.
@@ -48,11 +49,11 @@ A simple command to install all the above dependencies for ubuntu or debian is:
**The recommended LLVM/CLANG version is 3.6 and/or 3.7**
-Based on our test result, LLVM 3.6 and 3.7 has best pass rate on all the test suites. Compare
+Based on our test result, LLVM 3.6 and 3.7 has the best pass rate on all the test suites. Compared
to LLVM 3.6 and 3.7, if you used LLVM 3.8, you should pay attention to float immediate. For example,
-if you use 1.0 in the kernel, LLVM 3.6 will treate it as 1.0f, a single float, because the project
-don't support double float. but LLVM 3.8 will treate it as 1.0, a double foat, at the last it may cause
-error. So we recommend use 1.0f instead of 1.0 if you don't need double float.
+if you use 1.0 in the kernel, LLVM 3.6 will treat it as 1.0f, a single float, because the project
+doesn't support double float. but LLVM 3.8 will treat it as 1.0, a double float, at the last it may cause
+error. So we recommend using 1.0f instead of 1.0 if you don't need double float.
For LLVM 3.4 and 3.5, Beignet still support them, but it may be limited to support the
build and major functions.
@@ -112,12 +113,12 @@ It installs the OCL icd vendor files to /etc/OpenCL/vendors, if the system suppo
`> make package`
-It packages the driver binaries, you may copy&install the package to another machine with simillar system.
+It packages the driver binaries, you may copy&install the package to another machine with similar system.
How to run
-After build and install of beignet, you may need to check whether it works on your
+After building and installing Beignet, you may need to check whether it works on your
platform. Beignet also produces various tests to ensure the compiler and the run-time
consistency. This small test framework uses a simple c++ registration system to
register all the unit tests.
@@ -158,6 +159,18 @@ Supported Targets
* 6th Generation Intel Core Processors "Skylake" and "Kabylake".
* 5th Generation Intel Atom Processors "Broxten" or "Apollolake".
+From release v1.3.0, beignet support OpenCL 2.0. By default, OpenCL 2.0 support is disabled, you can enable it when cmake with option
+-DENABLE_OPENCL_20=1. Please remember that to enable OpenCL 2.0, there are some dependencies. First, OpenCL 2.0 only support the targets
+from Skylake, include Skylake, Kabylake and Apollolake. Then, clang supports all OpenCL 2.0 feature from 3.9. So to enable OpenCL 2.0,
+you must update LLVM/clang to 3.9 or later. And also requeires libdrm at least 2.4.66.
+After enable OpenCL 2.0, beignet complies with OpenCL 2.0 spec, but some OpenCL 2.0 features are simulated by software, there is no performance
+gain, such as pipe and device queues, especially device queues.
+If you build beignet with OpenCL 2.0 enabled and your kernel don't use the OpenCL 2.0 features, please pass a build option -cl-std=CL1.2 for
+performance, the OpenCL 2.0 uses more registers and has lots of int64 operations, which may hurt performance, and beignet will continue to improve
+OpenCL 2.0 performance.
@@ -173,7 +186,7 @@ Known Issues
`# echo -n 0 > /sys/module/i915/parameters/enable_hangcheck`
- But this command is a little bit dangerous, as if your kernel really hang, then the gpu will lock up
+ But this command is a little bit dangerous, as if your kernel really hangs, then the GPU will lock up
forever until a reboot.
* "Beignet: self-test failed" and almost all unit tests fail.
@@ -207,7 +220,7 @@ Known Issues
`# export OCL_STRICT_CONFORMANCE=0`.
- This would lost some precision but gain performance.
+ This loses some precision but gains performance.
This extension highly depends on mesa support. It seems that mesa would not provide
@@ -273,6 +286,7 @@ Documents for OpenCL application developers
- [[V4l2 Buffer Sharing|Beignet/howto/v4l2-buffer-sharing-howto]]
- [[Video Motion Estimation|Beignet/howto/video-motion-estimation-howto]]
- [[Stand Alone Unit Test|Beignet/howto/stand-alone-utest-howto]]
+- [[Android build|Beignet/android-build-howto]]
The wiki URL is as below: