@@ -11,14 +11,14 @@ Motivation and Limitations
11
11
Motivation
12
12
==========
13
13
14
- This project aims to provide a large subset of the C standard library to users
15
- of GPU accelerators. We deliberately choose to only implement a subset of the C
16
- library as some features are not expressly useful or easily implemented on the
17
- GPU. This will be discussed further in `Limitations <libc_gpu_limitations >`_.
18
- The main motivation behind this project is to provide the well understood C
14
+ This project aims to provide a large subset of the C standard library to users
15
+ of GPU accelerators. We deliberately choose to only implement a subset of the C
16
+ library as some features are not expressly useful or easily implemented on the
17
+ GPU. This will be discussed further in `Limitations <libc_gpu_limitations >`_.
18
+ The main motivation behind this project is to provide the well understood C
19
19
library as a firm base for GPU development.
20
20
21
- The main idea behind this project is that programming GPUs can be as
21
+ The main idea behind this project is that programming GPUs can be as
22
22
straightforward as programming on CPUs. This project aims to validate the GPU as
23
23
a more general-purpose target. The implementations here will also enable more
24
24
complex implementations of other libraries on the GPU, such as ``libc++ ``.
@@ -31,10 +31,10 @@ toolchain. We also aim to provide these functions in a format compatible with
31
31
offloading in ``Clang `` so that we can treat the C library for the GPU as a
32
32
standard static library.
33
33
34
- A valuable use for providing C library features on the GPU is for testing. For
35
- this reason we build `tests on the GPU <libc_gpu_testing >`_ that can run a unit
36
- test as if it were being run on the CPU. This also helps users port applications
37
- that traditionally were run on the CPU. With this support, we can expand test
34
+ A valuable use for providing C library features on the GPU is for testing. For
35
+ this reason we build `tests on the GPU <libc_gpu_testing >`_ that can run a unit
36
+ test as if it were being run on the CPU. This also helps users port applications
37
+ that traditionally were run on the CPU. With this support, we can expand test
38
38
coverage for the GPU backend to the existing LLVM C library tests.
39
39
40
40
.. _libc_gpu_limitations :
@@ -43,9 +43,9 @@ Limitations
43
43
===========
44
44
45
45
We only implement a subset of the standard C library. The GPU does not
46
- currently support thread local variables in all cases, so variables like
47
- ``errno `` are not provided. Furthermore, the GPU under the OpenCL execution
48
- model cannot safely provide a mutex interface. This means that features like
49
- file buffering are not implemented on the GPU. We can also not easily provide
50
- threading features on the GPU due to the execution model so these will be
46
+ currently support thread local variables in all cases, so variables like
47
+ ``errno `` are not provided. Furthermore, the GPU under the OpenCL execution
48
+ model cannot safely provide a mutex interface. This means that features like
49
+ file buffering are not implemented on the GPU. We can also not easily provide
50
+ threading features on the GPU due to the execution model so these will be
51
51
ignored, as will features like ``locale `` or ``time ``.
0 commit comments