150
|
1 <html>
|
|
2 <head>
|
|
3 <title>libclc</title>
|
|
4 </head>
|
|
5 <body>
|
|
6 <h1>libclc</h1>
|
|
7 <p>
|
|
8 libclc is an open source, BSD/MIT dual licensed
|
|
9 implementation of the library requirements of the
|
|
10 OpenCL C programming language, as specified by the <a
|
|
11 href="https://www.khronos.org/registry/OpenCL/specs/opencl-1.1.pdf">OpenCL
|
|
12 1.1 Specification</a>. The following sections of the specification
|
|
13 impose library requirements:
|
|
14 <ul>
|
|
15 <li>6.1: Supported Data Types
|
|
16 <li>6.2.3: Explicit Conversions
|
|
17 <li>6.2.4.2: Reinterpreting Types Using as_type() and as_typen()
|
|
18 <li>6.9: Preprocessor Directives and Macros
|
|
19 <li>6.11: Built-in Functions
|
|
20 <li>9.3: Double Precision Floating-Point
|
|
21 <li>9.4: 64-bit Atomics
|
|
22 <li>9.5: Writing to 3D image memory objects
|
|
23 <li>9.6: Half Precision Floating-Point
|
|
24 </ul>
|
|
25 </p>
|
|
26
|
|
27 <p>
|
|
28 libclc is intended to be used with the <a href="https://clang.llvm.org/">Clang</a>
|
|
29 compiler's OpenCL frontend.
|
|
30 </p>
|
|
31
|
|
32 <p>
|
|
33 libclc is designed to be portable and extensible. To this end,
|
|
34 it provides generic implementations of most library requirements,
|
|
35 allowing the target to override the generic implementation at the
|
|
36 granularity of individual functions.
|
|
37 </p>
|
|
38
|
|
39 <p>
|
|
40 libclc currently supports the AMDGCN, and R600 and NVPTX targets, but
|
|
41 support for more targets is welcome.
|
|
42 </p>
|
|
43
|
|
44 <h2>Download</h2>
|
|
45
|
|
46 <tt>git clone https://github.com/llvm/llvm-project.git</tt> (<a href="https://github.com/llvm/llvm-project/tree/libclc">View sources</a>)
|
|
47
|
|
48 <h2>Mailing List</h2>
|
|
49
|
|
50 libclc-dev@lists.llvm.org (<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/libclc-dev">subscribe/unsubscribe</a>, <a href="https://lists.llvm.org/pipermail/libclc-dev/">archives</a>)
|
|
51
|
|
52 </body>
|
|
53 </html>
|