
Introduction:
#############

RocmAsync is designed to capture the performance characteristics of buffer
copying and kernel read/write operations. The help screen of the benchmark
shows various options one can use in initiating cop/read/writer operations.
In addition one can also query the topology of the system in terms of memory
pools and their agents

Build Environment:
##################

To be able to build RocmAsync, users must ensure that the build platform has
following conditions satisfied:
Build Procedure:
################

The following simply lists the steps to build RocmAsync
  
--- Define following environment variable to specify location of header
    and library files

    // Containins header files exported by ROC Runtime
    ROCR_INC_DIR="Path of ROC Runtime Header Files"

    // Containins library files exported by ROC Runtime
    ROCR_LIB_DIR="Path of ROC Runtime Library Files"

--- Create a build directory. The location of build directory can be anywhere
    in the file system as long as it has read / write / execute permissions for
    the user invoking the commands. User can choose any valid filename for the
    build directory as the examples below illustrate

        e.g. mkdir rocm_async/perfBuild
        e.g. mkdir <parent_Of_rocm_async>rocm_async-build
        e.g. mkdir <user_home>/rocmAsyncBuild

--- Set working directory to be the new build directory

        e.g. cd rocm_async/perfBuild
        e.g. cd <parent_Of_rocm_async>rocm-async-build
        e.g. cd <user_home>/rocmAsyncBuild

--- Invoke Cmake to interpret build rules and generate native build files
    The argument for cmake should be the root folder of RocmAsync test suite

        // Builds Release version (default)
        e.g. cmake .../rocm_async

        // Builds Debug version
        e.g. cmake -DCMAKE_BUILD_TYPE:STRING=Debug .../rocm_async

--- Invoke the native build rules generated by cmake to build the various
    object, library and executable files

        e.g. make

--- Invoke the install command to copy build artifacts to pre-defined folders
    of RocmAsync suite. Upon completion artifacts will be copied to the bin and
    lib directories of build directory
    
        e.g. make install
    
    @note: All executables will be found in <build_directory>/bin folder

