You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[GRCUDA-4] replaced grCUDA with GrCUDA in all files (exception: variable names starting with grCUDA, i.e. grCUDAExecutionContext) and filenames (actually no file or folder had grCUDA in their names) (#6)
Copy file name to clipboardExpand all lines: README.md
+15-15
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# grCUDA: Polyglot GPU Access in GraalVM
1
+
# GrCUDA: Polyglot GPU Access in GraalVM
2
2
3
3
This Truffle language exposes GPUs to the polyglot [GraalVM](http://www.graalvm.org). The goal is to
4
4
@@ -15,23 +15,23 @@ Supported and tested GraalVM languages:
15
15
- Java
16
16
- C and Rust through the Graal Sulong Component
17
17
18
-
A description of grCUDA and its the features can be found in the [grCUDA documentation](docs/grcuda.md).
18
+
A description of GrCUDA and its the features can be found in the [GrCUDA documentation](docs/grcuda.md).
19
19
20
20
The [bindings documentation](docs/bindings.md) contains a tutorial that shows
21
21
how to bind precompiled kernels to callables, compile and launch kernels.
22
22
23
23
**Additional Information:**
24
24
25
-
-[grCUDA: A Polyglot Language Binding for CUDA in GraalVM](https://devblogs.nvidia.com/grcuda-a-polyglot-language-binding-for-cuda-in-graalvm/). NVIDIA Developer Blog,
25
+
-[GrCUDA: A Polyglot Language Binding for CUDA in GraalVM](https://devblogs.nvidia.com/grcuda-a-polyglot-language-binding-for-cuda-in-graalvm/). NVIDIA Developer Blog,
26
26
November 2019.
27
-
-[grCUDA: A Polyglot Language Binding](https://youtu.be/_lI6ubnG9FY). Presentation at Oracle CodeOne 2019, September 2019.
27
+
-[GrCUDA: A Polyglot Language Binding](https://youtu.be/_lI6ubnG9FY). Presentation at Oracle CodeOne 2019, September 2019.
28
28
-[Simplifying GPU Access](https://developer.nvidia.com/gtc/2020/video/s21269-vid). Presentation at NVIDIA GTC 2020, March 2020.
29
29
-[DAG-based Scheduling with Resource Sharing for Multi-task Applications in a Polyglot GPU Runtime](https://ieeexplore.ieee.org/abstract/document/9460491). Paper at IPDPS 2021 on the GrCUDA scheduler, May 2021. [Video](https://youtu.be/QkX0FHDRyxA) of the presentation.
30
30
31
-
## Using grCUDA in the GraalVM
31
+
## Using GrCUDA in the GraalVM
32
32
33
-
grCUDA can be used in the binaries of the GraalVM languages (`lli`, `graalpython`,
34
-
`js`, `R`, and `ruby)`. The JAR file containing grCUDA must be appended to the classpath
33
+
GrCUDA can be used in the binaries of the GraalVM languages (`lli`, `graalpython`,
34
+
`js`, `R`, and `ruby)`. The JAR file containing GrCUDA must be appended to the classpath
35
35
or copied into `jre/languages/grcuda` of the Graal installation. Note that `--jvm`
36
36
and `--polyglot` must be specified in both cases as well.
constcu=Polyglot.eval('grcuda', 'CU') // get grCUDA namespace object
50
+
constcu=Polyglot.eval('grcuda', 'CU') // get GrCUDA namespace object
51
51
constincKernel=cu.buildkernel(
52
52
kernelSource, // CUDA kernel source code string
53
53
'increment', // kernel name
@@ -126,7 +126,7 @@ Documentation on [polyglot kernel launches](docs/launchkernel.md).
126
126
127
127
## Installation
128
128
129
-
grCUDA can be downloaded as a binary JAR from [grcuda/releases](https://github.com/NVIDIA/grcuda/releases) and manually copied into a GraalVM installation.
129
+
GrCUDA can be downloaded as a binary JAR from [grcuda/releases](https://github.com/NVIDIA/grcuda/releases) and manually copied into a GraalVM installation.
130
130
131
131
1. Download GraalVM CE 21.1.0 for Linux `graalvm-ce-java11-linux-amd64-21.1.0.tar.gz`
132
132
from [GitHub](https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-21.1.0/graalvm-ce-java11-linux-amd64-21.1.0.tar.gz) and untar it in your
@@ -138,15 +138,15 @@ grCUDA can be downloaded as a binary JAR from [grcuda/releases](https://github.c
138
138
export GRAALVM_DIR=`pwd`/graalvm-ce-java11-21.1.0
139
139
```
140
140
141
-
2. Download the grCUDA JAR from [grcuda/releases](https://github.com/NVIDIA/grcuda/releases). If using the official release, the latest features (e.g. the asynchronous scheduler) are not available. Instead, follow the guide below to install GrCUDA from the source code.
141
+
2. Download the GrCUDA JAR from [grcuda/releases](https://github.com/NVIDIA/grcuda/releases). If using the official release, the latest features (e.g. the asynchronous scheduler) are not available. Instead, follow the guide below to install GrCUDA from the source code.
142
142
143
143
```console
144
144
cd $GRAALVM_DIR/jre/languages
145
145
mkdir grcuda
146
146
cp <download folder>/grcuda-0.1.0.jar grcuda
147
147
```
148
148
149
-
3. Test grCUDA in Node.JS from GraalVM.
149
+
3. Test GrCUDA in Node.JS from GraalVM.
150
150
151
151
```console
152
152
cd $GRAALVM_DIR/bin
@@ -165,13 +165,13 @@ grCUDA can be downloaded as a binary JAR from [grcuda/releases](https://github.c
165
165
./gu install ruby
166
166
```
167
167
168
-
## Instructions to build grCUDA from Sources
168
+
## Instructions to build GrCUDA from Sources
169
169
170
-
grCUDA requires the [mx build tool](https://github.com/graalvm/mx). Clone the mx
170
+
GrCUDA requires the [mx build tool](https://github.com/graalvm/mx). Clone the mx
171
171
repository and add the directory into `$PATH`, such that the `mx` can be invoked from
172
172
the command line.
173
173
174
-
Build grCUDA and the unit tests:
174
+
Build GrCUDA and the unit tests:
175
175
176
176
```console
177
177
cd <directory containing this README>
@@ -186,7 +186,7 @@ To run unit tests:
186
186
mx unittest com.nvidia
187
187
```
188
188
189
-
## Using grCUDA in a JDK
189
+
## Using GrCUDA in a JDK
190
190
191
191
Make sure that you use the [OpenJDK+JVMCI-21.1](https://github.com/graalvm/labs-openjdk-11/releases/download/jvmci-21.1-b05/labsjdk-ce-11.0.11+8-jvmci-21.1-b05-linux-amd64.tar.gz).
`bindkernel()` "imports" a single kernel function into grCUDA. `bindkernel()`
194
+
`bindkernel()` "imports" a single kernel function into GrCUDA. `bindkernel()`
195
195
returns the kernel as a callable object. It can be called like a function.
196
196
The parameters are the kernel grid size and as optional the amount dynamic shared
197
197
memory. This is analogous to the kernel launch configuration in CUDA that is
@@ -275,7 +275,7 @@ If the a kernel function is not declared with the `extern "C"`
275
275
`nvcc` generates C++ symbols for kernel functions. Such kernels can be enclosed
276
276
in a `kernels` scope in the NIDL file and subsequently bound in one step.
277
277
As in `hostfuncs` for C++ host functions, a C++ namespace can also be
278
-
specified in `kernels`. grCUDA the searches all functions within the scope
278
+
specified in `kernels`. GrCUDA the searches all functions within the scope
279
279
in this namespace.
280
280
281
281
Kernel function defined with `extern "C"` can bound in a `ckernels` scope.
@@ -288,7 +288,7 @@ e.g., `increment`.
288
288
289
289
## Runtime-compilation of GPU Kernels from CUDA C/C++
290
290
291
-
grCUDA can also compile GPU kernels directly from CUDA C/C++
291
+
GrCUDA can also compile GPU kernels directly from CUDA C/C++
292
292
source code passed as a host-string argument to
293
293
`buildkernel(..)`. The signature of the function is:
294
294
@@ -339,7 +339,7 @@ print(device_array)
339
339
## Launching Kernels
340
340
341
341
Once a kernel function is bound to a callable host-object or registered as
342
-
a function within grCUDA, it can be launched like a function with two argument lists (for exceptions in Ruby and Java and Ruby see the examples below).
342
+
a function within GrCUDA, it can be launched like a function with two argument lists (for exceptions in Ruby and Java and Ruby see the examples below).
343
343
344
344
```test
345
345
kernel(num_blocks, block_size)(arg1, ..., argN)
@@ -355,7 +355,7 @@ The first argument list corresponds to the launch configuration, i.e.,
355
355
the kernel grid (number of blocks) and the block sizes (number of
356
356
threads per block).
357
357
358
-
grCUDA currently only supports synchronous kernel launches,
358
+
GrCUDA currently only supports synchronous kernel launches,
359
359
i.e., there is an implicit `cudaDeviceSynchronize()` after every
0 commit comments