|
CIRCT 23.0.0git
|
#include "esi/Accelerator.h"#include "esi/CLI.h"#include "esi/Manifest.h"#include "esi/Services.h"#include <atomic>#include <chrono>#include <cstdlib>#include <future>#include <iostream>#include <map>#include <memory>#include <random>#include <span>#include <sstream>#include <stdexcept>#include <vector>
Go to the source code of this file.
Classes | |
| struct | StreamingAddArg |
| Packed struct representing a parallel window argument for StreamingAdder. More... | |
| struct | StreamingAddResult |
| Packed struct representing a parallel window result for StreamingAdder. More... | |
| struct | StreamingAddTranslatedArg |
| Test the StreamingAdder module using message translation. More... | |
| struct | StreamingAddTranslatedResult |
| Translated result struct for StreamingAdder. More... | |
| struct | Coord |
| Test the CoordTranslator module using message translation. More... | |
| struct | CoordTranslateArg |
| Translated argument struct for CoordTranslator. More... | |
| struct | CoordTranslateResult |
| Translated result struct for CoordTranslator. More... | |
| struct | SerialCoordHeader |
| struct | SerialCoordData |
| union | SerialCoordInputFrame |
| struct | SerialCoordOutputHeader |
| struct | SerialCoordOutputData |
| union | SerialCoordOutputFrame |
Functions | |
| static void | callbackTest (AcceleratorConnection *, Accelerator *, uint32_t iterations) |
| static void | hostmemTest (AcceleratorConnection *, Accelerator *, const std::vector< uint32_t > &widths, bool write, bool read) |
| static void | hostmemBandwidthTest (AcceleratorConnection *conn, Accelerator *acc, uint32_t xferCount, const std::vector< uint32_t > &widths, bool read, bool write) |
| static void | dmaTest (AcceleratorConnection *, Accelerator *, const std::vector< uint32_t > &widths, bool read, bool write) |
| static void | bandwidthTest (AcceleratorConnection *, Accelerator *, const std::vector< uint32_t > &widths, uint32_t xferCount, bool read, bool write) |
| static void | loopbackAddTest (AcceleratorConnection *, Accelerator *, uint32_t iterations, bool pipeline) |
| static void | aggregateHostmemBandwidthTest (AcceleratorConnection *, Accelerator *, uint32_t width, uint32_t xferCount, bool read, bool write) |
| static void | streamingAddTest (AcceleratorConnection *conn, Accelerator *accel, uint32_t addAmt, uint32_t numItems) |
| Test the StreamingAdder module. | |
| static void | streamingAddTranslatedTest (AcceleratorConnection *, Accelerator *, uint32_t addAmt, uint32_t numItems) |
| static void | coordTranslateTest (AcceleratorConnection *, Accelerator *, uint32_t xTrans, uint32_t yTrans, uint32_t numCoords) |
| static void | serialCoordTranslateTest (AcceleratorConnection *, Accelerator *, uint32_t xTrans, uint32_t yTrans, uint32_t numCoords, size_t batchSizeLimit) |
| static std::string | defaultWidthsStr () |
| static std::string | formatBandwidth (double bytesPerSec) |
| static std::string | humanBytes (uint64_t bytes) |
| static std::string | humanTimeUS (uint64_t us) |
| static void * | alignedAllocCompat (std::size_t alignment, std::size_t size) |
| static void | alignedFreeCompat (void *ptr) |
| int | main (int argc, const char *argv[]) |
| static void | hostmemWriteTest (Accelerator *acc, esi::services::HostMem::HostMemRegion ®ion, uint32_t width) |
| Test the hostmem write functionality. | |
| static void | hostmemReadTest (Accelerator *acc, esi::services::HostMem::HostMemRegion ®ion, uint32_t width) |
| static void | dmaReadTest (AcceleratorConnection *conn, Accelerator *acc, size_t width) |
| static void | dmaWriteTest (AcceleratorConnection *conn, Accelerator *acc, size_t width) |
| static void | bandwidthReadTest (AcceleratorConnection *conn, Accelerator *acc, size_t width, size_t xferCount) |
| static void | bandwidthWriteTest (AcceleratorConnection *conn, Accelerator *acc, size_t width, size_t xferCount) |
| static void | hostmemWriteBandwidthTest (AcceleratorConnection *conn, Accelerator *acc, esi::services::HostMem::HostMemRegion ®ion, uint32_t width, uint32_t xferCount) |
| static void | hostmemReadBandwidthTest (AcceleratorConnection *conn, Accelerator *acc, esi::services::HostMem::HostMemRegion ®ion, uint32_t width, uint32_t xferCount) |
Variables | |
| constexpr std::array< uint32_t, 5 > | defaultWidths = {32, 64, 128, 256, 512} |
|
static |
Definition at line 1112 of file esitester.cpp.
References esi::services::TelemetryService::Metric::connect(), formatBandwidth(), esi::BundlePort::getAs(), esi::HWModule::getChildren(), esi::AcceleratorConnection::getLogger(), esi::AcceleratorConnection::getService(), humanBytes(), humanTimeUS(), esi::Logger::info(), and esi::services::HostMem::start().
Referenced by main().
|
static |
Definition at line 145 of file esitester.cpp.
Referenced by coordTranslateTest(), and streamingAddTranslatedTest().
|
static |
Definition at line 159 of file esitester.cpp.
Referenced by coordTranslateTest(), and streamingAddTranslatedTest().
|
static |
Definition at line 730 of file esitester.cpp.
References esi::ReadChannelPort::connect(), esi::Logger::debug(), formatBandwidth(), esi::BundlePort::getAs(), esi::AcceleratorConnection::getLogger(), esi::BundlePort::getRawRead(), esi::Logger::info(), esi::ReadChannelPort::read(), and esi::HWModule::resolvePort().
Referenced by bandwidthTest().
|
static |
Definition at line 823 of file esitester.cpp.
References bandwidthReadTest(), and bandwidthWriteTest().
Referenced by main().
|
static |
Definition at line 775 of file esitester.cpp.
References esi::WriteChannelPort::connect(), esi::Logger::debug(), formatBandwidth(), esi::BundlePort::getAs(), esi::AcceleratorConnection::getLogger(), esi::BundlePort::getRawWrite(), esi::Logger::info(), esi::HWModule::resolvePort(), and esi::WriteChannelPort::write().
Referenced by bandwidthTest().
|
static |
Definition at line 352 of file esitester.cpp.
References esi::HWModule::getChildren(), esi::AcceleratorConnection::getLogger(), and esi::Logger::info().
Referenced by main().
|
static |
Definition at line 1660 of file esitester.cpp.
References alignedAllocCompat(), alignedFreeCompat(), CoordTranslateArg::allocSize(), CoordTranslateResult::allocSize(), CoordTranslateResult::coords(), CoordTranslateArg::coordsLength, esi::Logger::debug(), esi::MessageData::getBytes(), esi::HWModule::getChildren(), esi::AcceleratorConnection::getLogger(), esi::MessageData::getSize(), esi::Logger::info(), Coord::x, and Coord::y.
Referenced by main().
|
static |
|
static |
Definition at line 606 of file esitester.cpp.
References esi::ReadChannelPort::connect(), esi::Logger::debug(), esi::ReadChannelPort::disconnect(), esi::BundlePort::getAs(), esi::AcceleratorConnection::getLogger(), esi::BundlePort::getRawRead(), esi::Logger::info(), esi::ReadChannelPort::read(), and esi::HWModule::resolvePort().
Referenced by dmaTest().
|
static |
Definition at line 705 of file esitester.cpp.
References dmaReadTest(), and dmaWriteTest().
Referenced by main().
|
static |
Definition at line 645 of file esitester.cpp.
References esi::WriteChannelPort::connect(), esi::BundlePort::getAs(), esi::AcceleratorConnection::getLogger(), esi::BundlePort::getRawWrite(), esi::Logger::info(), esi::HWModule::resolvePort(), esi::toString(), and writePort().
Referenced by dmaTest().
|
static |
Definition at line 87 of file esitester.cpp.
Referenced by aggregateHostmemBandwidthTest(), bandwidthReadTest(), bandwidthWriteTest(), hostmemReadBandwidthTest(), and hostmemWriteBandwidthTest().
|
static |
Definition at line 992 of file esitester.cpp.
References esi::AcceleratorConnection::getService(), hostmemReadBandwidthTest(), hostmemWriteBandwidthTest(), and esi::services::HostMem::start().
Referenced by main().
|
static |
Definition at line 919 of file esitester.cpp.
References esi::services::TelemetryService::Metric::connect(), esi::services::HostMem::HostMemRegion::flush(), formatBandwidth(), esi::BundlePort::getAs(), esi::HWModule::getChildren(), esi::services::HostMem::HostMemRegion::getDevicePtr(), esi::AcceleratorConnection::getLogger(), esi::services::HostMem::HostMemRegion::getPtr(), esi::services::HostMem::HostMemRegion::getSize(), esi::Logger::info(), and esi::services::TelemetryService::Metric::readInt().
Referenced by hostmemBandwidthTest().
|
static |
Definition at line 486 of file esitester.cpp.
References esi::services::HostMem::HostMemRegion::flush(), esi::HWModule::getChildren(), esi::services::HostMem::HostMemRegion::getDevicePtr(), esi::services::HostMem::HostMemRegion::getPtr(), and esi::toHex().
Referenced by hostmemTest().
|
static |
Definition at line 570 of file esitester.cpp.
References esi::Logger::error(), esi::AcceleratorConnection::getLogger(), esi::AcceleratorConnection::getService(), hostmemReadTest(), hostmemWriteTest(), esi::Logger::info(), esi::services::HostMem::start(), and esi::toHex().
Referenced by main().
|
static |
Definition at line 839 of file esitester.cpp.
References esi::services::TelemetryService::Metric::connect(), esi::services::HostMem::HostMemRegion::flush(), formatBandwidth(), esi::BundlePort::getAs(), esi::HWModule::getChildren(), esi::services::HostMem::HostMemRegion::getDevicePtr(), esi::AcceleratorConnection::getLogger(), esi::services::HostMem::HostMemRegion::getPtr(), esi::services::HostMem::HostMemRegion::getSize(), esi::Logger::info(), and esi::services::TelemetryService::Metric::readInt().
Referenced by hostmemBandwidthTest().
|
static |
Test the hostmem write functionality.
Definition at line 407 of file esitester.cpp.
References esi::services::HostMem::HostMemRegion::flush(), esi::HWModule::getChildren(), esi::services::HostMem::HostMemRegion::getDevicePtr(), esi::services::HostMem::HostMemRegion::getPtr(), and print().
Referenced by hostmemTest().
|
static |
Definition at line 108 of file esitester.cpp.
Referenced by aggregateHostmemBandwidthTest().
|
static |
Definition at line 124 of file esitester.cpp.
Referenced by aggregateHostmemBandwidthTest().
|
static |
Definition at line 1008 of file esitester.cpp.
References esi::MessageData::as(), esi::HWModule::getChildren(), esi::AcceleratorConnection::getLogger(), esi::Logger::info(), and esi::toHex().
Referenced by main().
| int main | ( | int | argc, |
| const char * | argv[] | ||
| ) |
Definition at line 167 of file esitester.cpp.
References esi::AcceleratorServiceThread::addPoll(), aggregateHostmemBandwidthTest(), bandwidthTest(), esi::Manifest::buildAccelerator(), callbackTest(), esi::CliParser::connect(), coordTranslateTest(), defaultWidths, defaultWidthsStr(), esi::AcceleratorConnection::disconnect(), dmaTest(), esi::Logger::error(), esi::CliParser::esiParse(), esi::CliParser::getContext(), esi::Context::getLogger(), esi::AcceleratorConnection::getService(), esi::AcceleratorConnection::getServiceThread(), hostmemBandwidthTest(), hostmemTest(), esi::Logger::info(), loopbackAddTest(), serialCoordTranslateTest(), streamingAddTest(), and streamingAddTranslatedTest().
|
static |
Definition at line 1818 of file esitester.cpp.
References SerialCoordData::_pad_head, esi::WriteChannelPort::connect(), esi::ReadChannelPort::connect(), SerialCoordHeader::coordsCount, SerialCoordOutputHeader::coordsCount, SerialCoordInputFrame::data, esi::WriteChannelPort::disconnect(), esi::ReadChannelPort::disconnect(), esi::MessageData::from(), esi::MessageData::getBytes(), esi::HWModule::getChildren(), esi::AcceleratorConnection::getLogger(), esi::MessageData::getSize(), SerialCoordInputFrame::header, SerialCoordOutputFrame::header, esi::Logger::info(), esi::ReadChannelPort::read(), esi::WriteChannelPort::write(), SerialCoordData::x, SerialCoordHeader::xTranslation, SerialCoordData::y, and SerialCoordHeader::yTranslation.
Referenced by main().
|
static |
Test the StreamingAdder module.
This module takes a struct containing an add_amt and a list of uint32s, adds add_amt to each element, and returns the resulting list. The data is streamed using windowed types.
Definition at line 1309 of file esitester.cpp.
References StreamingAddArg::addAmt, esi::WriteChannelPort::connect(), esi::ReadChannelPort::connect(), esi::Logger::debug(), esi::WriteChannelPort::disconnect(), esi::ReadChannelPort::disconnect(), esi::MessageData::getBytes(), esi::HWModule::getChildren(), esi::AcceleratorConnection::getLogger(), esi::MessageData::getSize(), esi::Logger::info(), StreamingAddArg::input, StreamingAddArg::last, StreamingAddResult::last, esi::ReadChannelPort::read(), and esi::WriteChannelPort::write().
Referenced by main().
|
static |
Definition at line 1474 of file esitester.cpp.
References alignedAllocCompat(), alignedFreeCompat(), StreamingAddTranslatedArg::allocSize(), StreamingAddTranslatedResult::allocSize(), esi::WriteChannelPort::connect(), esi::ReadChannelPort::connect(), StreamingAddTranslatedResult::data(), esi::Logger::debug(), esi::WriteChannelPort::disconnect(), esi::ReadChannelPort::disconnect(), esi::MessageData::getBytes(), esi::HWModule::getChildren(), esi::AcceleratorConnection::getLogger(), esi::MessageData::getSize(), esi::Logger::info(), StreamingAddTranslatedArg::inputLength, esi::ReadChannelPort::read(), and esi::WriteChannelPort::write().
Referenced by main().
|
constexpr |
Definition at line 75 of file esitester.cpp.
Referenced by defaultWidthsStr(), and main().