CCLO
ACCL::CCLO
-
class CCLO
Abstract class that defines operations to be performed on the CCLO on the FPGA.
Subclassed by ACCL::FPGADevice, ACCL::SimDevice
Public Functions
-
virtual void call(const Options &options) = 0
Call a CCLO operation based on the options.
- Parameters
options – Specifies CCLO operation and configuration.
-
virtual void start(const Options &options) = 0
Call a CCLO operation based on the options, and wait for operation to complete.
- Parameters
options – Specifies CCLO operation and configuration.
-
virtual val_t read(addr_t offset) = 0
Read data from FPGA at specified address.
- Parameters
offset – Offset to read data from on the FPGA.
- Returns
val_t Data located at specified address on FPGA.
-
struct Options
CCLO options for call and start.
Public Members
-
unsigned int count
Amount of elements to perform operation on.
-
unsigned int comm
Address of communicator to use.
-
unsigned int root_src_dst
Rank to use as root for the operation.
-
cfgFunc cfg_function
Configuration function to use for operation.
-
reduceFunction reduce_function
Reduce function to use for operation.
-
unsigned int tag
Tag to use for send or receive.
-
compressionFlags compression_flags
Compression configuration.
-
streamFlags stream_flags
Stream configuration.
-
BaseBuffer *addr_0
ACCL buffer of operand 0.
-
BaseBuffer *addr_1
ACCL buffer of operand 1.
-
BaseBuffer *addr_2
ACCL buffer of result.
-
unsigned int count
-
virtual void call(const Options &options) = 0
ACCL::ArithConfig
-
class ArithConfig
Arithmetic configuration needed for CCLO.
Public Functions
-
inline ArithConfig(unsigned int uncompressed_elem_bytes, unsigned int compressed_elem_bytes, unsigned int elem_ratio_log, unsigned int compressor_tdest, unsigned int decompressor_tdest, bool arith_is_compressed, std::vector<unsigned int> arith_tdest)
Construct a new Arithmetic Configuration object.
- Parameters
uncompressed_elem_bytes – Size of uncompressed datatype.
compressed_elem_bytes – Size of compressed datatype.
elem_ratio_log – Element ratio log of datatype compression.
compressor_tdest – Type destination for compression in compression kernel. 0 for dataType::float32 to dataType::float16 in default ACCL kernel.
decompressor_tdest – Type destination for decompression in compression kernel. 1 for dataType::float16 to dataType::float32 in default ACCL kernel.
arith_is_compressed – Boolean to determine if arithmetic should be performed on the compressed or uncompressed datatypes.
arith_tdest – Type destination for arithmetic in arithmetic kernels. 0 for dataType::float32, 1 for dataType::float64, 2 for dataType::int32, 3 for dataType::int64, and 4 for dataType::float16 in default ACCL kernel.
-
inline ArithConfig(unsigned int uncompressed_elem_bytes, unsigned int compressed_elem_bytes, unsigned int elem_ratio_log, unsigned int compressor_tdest, unsigned int decompressor_tdest, bool arith_is_compressed, std::vector<unsigned int> arith_tdest)
ACCL::FPGADevice
-
class FPGADevice : public ACCL::CCLO
Implementation of CCLO that uses a CCLO kernel on a FPGA.
Public Functions
-
FPGADevice(xrt::ip &cclo_ip, xrt::kernel &hostctrl_ip)
Construct a new FPGADevice object.
- Parameters
cclo_ip – The CCLO kernel to use.
hostctrl_ip – The hostctrl kernel to use.
-
inline virtual ~FPGADevice()
Destroy the FPGADevice object.
-
virtual void call(const Options &options) override
Call a CCLO operation based on the options.
- Parameters
options – Specifies CCLO operation and configuration.
-
virtual void start(const Options &options) override
Call a CCLO operation based on the options, and wait for operation to complete.
- Parameters
options – Specifies CCLO operation and configuration.
-
virtual val_t read(addr_t offset) override
Read data from FPGA at specified address.
- Parameters
offset – Offset to read data from on the FPGA.
- Returns
val_t Data located at specified address on FPGA.
-
FPGADevice(xrt::ip &cclo_ip, xrt::kernel &hostctrl_ip)
ACCL::SimDevice
-
class SimDevice : public ACCL::CCLO
Implementation of CCLO that uses an external CCLO simulator or emulator.
Public Functions
-
SimDevice(unsigned int zmqport, unsigned int local_rank)
Construct a new Simulated Device object.
- Parameters
zmqport – Port of simulator or emulator to connect to.
local_rank – The local rank of this process.
-
inline virtual ~SimDevice()
Destroy the Simulated Device object.
-
virtual void call(const Options &options) override
Call a CCLO operation based on the options.
- Parameters
options – Specifies CCLO operation and configuration.
-
virtual void start(const Options &options) override
Call a CCLO operation based on the options, and wait for operation to complete.
- Parameters
options – Specifies CCLO operation and configuration.
-
virtual val_t read(addr_t offset) override
Read data from FPGA at specified address.
- Parameters
offset – Offset to read data from on the FPGA.
- Returns
val_t Data located at specified address on FPGA.
-
virtual void write(addr_t offset, val_t val) override
Write data to specified address on FPGA.
- Parameters
offset – Offset to write data to on the FPGA.
val – Value to write at specified address on FPGA.
-
SimDevice(unsigned int zmqport, unsigned int local_rank)