|
CIRCT 22.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... | |
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 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 1090 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 142 of file esitester.cpp.
Referenced by coordTranslateTest(), and streamingAddTranslatedTest().
|
static |
Definition at line 156 of file esitester.cpp.
Referenced by coordTranslateTest(), and streamingAddTranslatedTest().
|
static |
Definition at line 708 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 801 of file esitester.cpp.
References bandwidthReadTest(), and bandwidthWriteTest().
Referenced by main().
|
static |
Definition at line 753 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 330 of file esitester.cpp.
References esi::HWModule::getChildren(), esi::AcceleratorConnection::getLogger(), and esi::Logger::info().
Referenced by main().
|
static |
Definition at line 1638 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 584 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 683 of file esitester.cpp.
References dmaReadTest(), and dmaWriteTest().
Referenced by main().
|
static |
Definition at line 623 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 84 of file esitester.cpp.
Referenced by aggregateHostmemBandwidthTest(), bandwidthReadTest(), bandwidthWriteTest(), hostmemReadBandwidthTest(), and hostmemWriteBandwidthTest().
|
static |
Definition at line 970 of file esitester.cpp.
References esi::AcceleratorConnection::getService(), hostmemReadBandwidthTest(), hostmemWriteBandwidthTest(), and esi::services::HostMem::start().
Referenced by main().
|
static |
Definition at line 897 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 464 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 548 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 817 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 385 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 105 of file esitester.cpp.
Referenced by aggregateHostmemBandwidthTest().
|
static |
Definition at line 121 of file esitester.cpp.
Referenced by aggregateHostmemBandwidthTest().
|
static |
Definition at line 986 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 164 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(), streamingAddTest(), and streamingAddTranslatedTest().
|
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 1287 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 1452 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 72 of file esitester.cpp.
Referenced by defaultWidthsStr(), and main().