Skip to content
Snippets Groups Projects
Commit 7079b374 authored by gaurip2's avatar gaurip2
Browse files

Changed references from HeteroC++ and HeteroC to Hetero-C++

parent bd0c8e19
No related branches found
No related tags found
No related merge requests found
......@@ -3,11 +3,11 @@ Writing a Hetero-C++ Program and Compiling it with HPVM
We will write a simple Matrix Multiplication kernel
to illustrate how to compile a program through HPVM to target CPU, GPU or the FPGA.
The implementation will be written using ``HeteroC++``,
The implementation will be written using ``Hetero-C++``,
a parallel dialect of C/C++ which describes hierarchical Task-level and Data-level parallelism
and compiles through HPVM.
Writing a Program in HeteroC++
Writing a Program in Hetero-C++
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
We start with a scalar implementation of Matrix Multiplication written in ``C++``.
......@@ -37,7 +37,7 @@ and the innermost loop iterates over loop index variable ``k``.
We can see that the iterations over ``i`` and ``j`` are independent of each other
and hence can be executed in parallel to each other.
The inner-most loop however is performing a reduction operation and can not be paralleled with HPVM.
We can describe the above information in HeteroC++ with the ``__hetero_parallel_loop`` marker function,
We can describe the above information in Hetero-C++ with the ``__hetero_parallel_loop`` marker function,
as shown below.
.. code:: cpp
......@@ -149,7 +149,7 @@ To actually invoke the DFG with specific arguments, we write the following host
The `__hetero_launch` call generates the host code to prepare the arguments to be passed into the HPVM DFG
as well as generates HPVM Runtime method calls for managing memory between compute devices.
Compiling the Program from HeteroC++ to HPVM-C
Compiling the Program from Hetero-C++ to HPVM-C
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
To compile the above program, we first generate the LLVM IR Bitcode for the C++ file, using the following command:
......@@ -158,7 +158,7 @@ To compile the above program, we first generate the LLVM IR Bitcode for the C++
$LLVM_BUILD_DIR/bin/clang -fno-discard-value-names -DDEVICE={CPU_TARGET,GPU_TARGET,FPGA_TARGET} -O1 -S -emit-llvm -I../include/ src/matmul.cc -o src/matmul.ll
Then, we run the generated bitcode file through the `HeteroC++` frontend
Then, we run the generated bitcode file through the `Hetero-C++` frontend
which converts the input program into `HPVM-C` representation which can be compiled through HPVM. `HPVM-C` is the low level representation to describe HPVM programs which directly maps to intrinsics in HPVM.
.. code:: console
......@@ -190,7 +190,7 @@ To compile the matrix multiplication program to the CPU we run the following com
hpvm-clang -DDEVICE=CPU_TARGET --hetero-cc --hpvm-target -cpu src/matmul.cc -o src/matmul.cpu
The above command would run the ``HeteroC++`` frontend and the ``HPVM`` Backend transformations to generate the executable ``src/matmul.cpu``. The `-DDEVICE` preprocessor directive simply sets the `__hetero_hint` argument to specify the node should be compiled to the CPU.
The above command would run the ``Hetero-C++`` frontend and the ``HPVM`` Backend transformations to generate the executable ``src/matmul.cpu``. The `-DDEVICE` preprocessor directive simply sets the `__hetero_hint` argument to specify the node should be compiled to the CPU.
================
......@@ -217,7 +217,7 @@ To compile the matrix multiplication program to the FPGA we run the following co
hpvm-clang -DDEVICE=FPGA_TARGET --hetero-cc --hpvm-target gpu src/matmul.cc -o src/matmul.FPGA
The above command would run the ``HeteroC++`` frontend and the ``HPVM`` Backend transformations to generate the executable ``src/matmul.fpga`` along with the OpenCL kernel which will execute on the FPGA.
The above command would run the ``Hetero-C++`` frontend and the ``HPVM`` Backend transformations to generate the executable ``src/matmul.fpga`` along with the OpenCL kernel which will execute on the FPGA.
Compiling the HPVM-C program through HPVM
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment