150
|
1 libclc
|
|
2 ------
|
|
3
|
|
4 libclc is an open source, BSD licensed implementation of the library
|
|
5 requirements of the OpenCL C programming language, as specified by the
|
|
6 OpenCL 1.1 Specification. The following sections of the specification
|
|
7 impose library requirements:
|
|
8
|
|
9 * 6.1: Supported Data Types
|
|
10 * 6.2.3: Explicit Conversions
|
|
11 * 6.2.4.2: Reinterpreting Types Using as_type() and as_typen()
|
|
12 * 6.9: Preprocessor Directives and Macros
|
|
13 * 6.11: Built-in Functions
|
|
14 * 9.3: Double Precision Floating-Point
|
|
15 * 9.4: 64-bit Atomics
|
|
16 * 9.5: Writing to 3D image memory objects
|
|
17 * 9.6: Half Precision Floating-Point
|
|
18
|
|
19 libclc is intended to be used with the Clang compiler's OpenCL frontend.
|
|
20
|
|
21 libclc is designed to be portable and extensible. To this end, it provides
|
|
22 generic implementations of most library requirements, allowing the target
|
|
23 to override the generic implementation at the granularity of individual
|
|
24 functions.
|
|
25
|
|
26 libclc currently only supports the PTX target, but support for more
|
|
27 targets is welcome.
|
|
28
|
|
29 Compiling and installing with Make
|
|
30 ----------------------------------
|
|
31
|
|
32 $ ./configure.py --with-llvm-config=/path/to/llvm-config && make
|
|
33 $ make install
|
|
34
|
|
35 Note you can use the DESTDIR Makefile variable to do staged installs.
|
|
36
|
|
37 $ make install DESTDIR=/path/for/staged/install
|
|
38
|
|
39 Compiling and installing with Ninja
|
|
40 -----------------------------------
|
|
41
|
|
42 $ ./configure.py -g ninja --with-llvm-config=/path/to/llvm-config && ninja
|
|
43 $ ninja install
|
|
44
|
|
45 Note you can use the DESTDIR environment variable to do staged installs.
|
|
46
|
|
47 $ DESTDIR=/path/for/staged/install ninja install
|
|
48
|
|
49 Website
|
|
50 -------
|
|
51
|
207
|
52 https://libclc.llvm.org/
|