From 7079b374a1973c7c0b1642c78eb1974970c3609e Mon Sep 17 00:00:00 2001 From: gaurip2 <gaurip2@illinois.edu> Date: Thu, 14 Apr 2022 15:50:46 -0500 Subject: [PATCH] Changed references from HeteroC++ and HeteroC to Hetero-C++ --- hpvm/docs/tutorials/1-heterocpp.rst | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/hpvm/docs/tutorials/1-heterocpp.rst b/hpvm/docs/tutorials/1-heterocpp.rst index 1fb67c3c96..fdec2c435d 100644 --- a/hpvm/docs/tutorials/1-heterocpp.rst +++ b/hpvm/docs/tutorials/1-heterocpp.rst @@ -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 -- GitLab