llvm-project
52 строки · 1.6 Кб
1libclc
2------
3
4libclc is an open source, BSD licensed implementation of the library
5requirements of the OpenCL C programming language, as specified by the
6OpenCL 1.1 Specification. The following sections of the specification
7impose 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
19libclc is intended to be used with the Clang compiler's OpenCL frontend.
20
21libclc is designed to be portable and extensible. To this end, it provides
22generic implementations of most library requirements, allowing the target
23to override the generic implementation at the granularity of individual
24functions.
25
26libclc currently only supports the PTX target, but support for more
27targets is welcome.
28
29Compiling and installing with Make
30----------------------------------
31
32$ ./configure.py --with-llvm-config=/path/to/llvm-config && make
33$ make install
34
35Note you can use the DESTDIR Makefile variable to do staged installs.
36
37$ make install DESTDIR=/path/for/staged/install
38
39Compiling and installing with Ninja
40-----------------------------------
41
42$ ./configure.py -g ninja --with-llvm-config=/path/to/llvm-config && ninja
43$ ninja install
44
45Note you can use the DESTDIR environment variable to do staged installs.
46
47$ DESTDIR=/path/for/staged/install ninja install
48
49Website
50-------
51
52https://libclc.llvm.org/
53