|
CIRCT 23.0.0git
|
#include "esi/Accelerator.h"#include "esi/CLI.h"#include "esi/Manifest.h"#include "esi/Services.h"#include "esi/TypedPorts.h"#include <algorithm>#include <atomic>#include <chrono>#include <cstdlib>#include <cstring>#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 |
| struct | SerialCoordInput |
| struct | SerialCoordBurst |
| struct | SerialCoordOutputHeader |
| struct | SerialCoordOutputData |
| union | SerialCoordOutputFrame |
| struct | SerialCoordOutputBatch |
| Deserialized result batch from the serial coord translator. More... | |
| class | SerialCoordOutputBatch::TypeDeserializer |
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 void | autoSerialCoordTranslateTest (AcceleratorConnection *, Accelerator *, uint32_t xTrans, uint32_t yTrans, uint32_t numCoords) |
| static void | channelTest (AcceleratorConnection *, Accelerator *, uint32_t iterations) |
| static void | resetTest (AcceleratorConnection *, Accelerator *) |
| 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 1213 of file esitester.cpp.
References esi::services::TelemetryService::Metric::connect(), formatBandwidth(), esi::BundlePort::getAs(), humanBytes(), humanTimeUS(), esi::Logger::info(), and esi::services::HostMem::start().
Referenced by main().
|
static |
Definition at line 154 of file esitester.cpp.
Referenced by coordTranslateTest(), and streamingAddTranslatedTest().
|
static |
Definition at line 168 of file esitester.cpp.
Referenced by coordTranslateTest(), and streamingAddTranslatedTest().
|
static |
Definition at line 2212 of file esitester.cpp.
References esi::TypedWritePort< T, SkipTypeCheck >::connect(), esi::ReadChannelPort::connect(), esi::TypedWritePort< T, SkipTypeCheck >::disconnect(), esi::ReadChannelPort::disconnect(), esi::HWModule::getChildren(), esi::Logger::info(), esi::ReadChannelPort::read(), and esi::TypedWritePort< T, SkipTypeCheck >::write().
Referenced by main().
|
static |
Definition at line 770 of file esitester.cpp.
References esi::ReadChannelPort::connect(), esi::Logger::debug(), formatBandwidth(), esi::BundlePort::getAs(), esi::BundlePort::getRawRead(), esi::Logger::info(), and esi::ReadChannelPort::read().
Referenced by bandwidthTest().
|
static |
Definition at line 863 of file esitester.cpp.
References bandwidthReadTest(), and bandwidthWriteTest().
Referenced by main().
|
static |
Definition at line 815 of file esitester.cpp.
References esi::WriteChannelPort::connect(), esi::Logger::debug(), formatBandwidth(), esi::BundlePort::getAs(), esi::BundlePort::getRawWrite(), esi::Logger::info(), and esi::WriteChannelPort::write().
Referenced by bandwidthTest().
|
static |
Definition at line 392 of file esitester.cpp.
References esi::HWModule::getChildren().
Referenced by main().
|
static |
Definition at line 2332 of file esitester.cpp.
References esi::MessageData::as(), esi::MessageData::from(), esi::HWModule::getChildren(), esi::Logger::info(), and esi::toHex().
Referenced by main().
|
static |
Definition at line 1761 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::MessageData::getSize(), esi::Logger::info(), Coord::x, and Coord::y.
Referenced by main().
|
static |
|
static |
Definition at line 646 of file esitester.cpp.
References esi::ReadChannelPort::connect(), esi::Logger::debug(), esi::ReadChannelPort::disconnect(), esi::BundlePort::getAs(), esi::BundlePort::getRawRead(), esi::Logger::info(), and esi::ReadChannelPort::read().
Referenced by dmaTest().
|
static |
Definition at line 745 of file esitester.cpp.
References dmaReadTest(), and dmaWriteTest().
Referenced by main().
|
static |
Definition at line 685 of file esitester.cpp.
References esi::WriteChannelPort::connect(), esi::WriteChannelPort::disconnect(), esi::BundlePort::getAs(), esi::BundlePort::getRawWrite(), esi::Logger::info(), esi::toString(), and esi::WriteChannelPort::tryWrite().
Referenced by dmaTest().
|
static |
Definition at line 96 of file esitester.cpp.
Referenced by aggregateHostmemBandwidthTest(), bandwidthReadTest(), bandwidthWriteTest(), hostmemReadBandwidthTest(), and hostmemWriteBandwidthTest().
|
static |
Definition at line 1032 of file esitester.cpp.
References hostmemReadBandwidthTest(), hostmemWriteBandwidthTest(), and esi::services::HostMem::start().
Referenced by main().
|
static |
Definition at line 959 of file esitester.cpp.
References esi::services::TelemetryService::Metric::connect(), esi::services::HostMem::HostMemRegion::flush(), formatBandwidth(), esi::BundlePort::getAs(), esi::services::HostMem::HostMemRegion::getDevicePtr(), 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 526 of file esitester.cpp.
References esi::services::HostMem::HostMemRegion::flush(), esi::services::HostMem::HostMemRegion::getDevicePtr(), esi::services::HostMem::HostMemRegion::getPtr(), and esi::toHex().
Referenced by hostmemTest().
|
static |
Definition at line 610 of file esitester.cpp.
References hostmemReadTest(), hostmemWriteTest(), esi::services::HostMem::start(), and esi::toHex().
Referenced by main(), and resetTest().
|
static |
Definition at line 879 of file esitester.cpp.
References esi::services::TelemetryService::Metric::connect(), esi::services::HostMem::HostMemRegion::flush(), formatBandwidth(), esi::BundlePort::getAs(), esi::services::HostMem::HostMemRegion::getDevicePtr(), 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 447 of file esitester.cpp.
References esi::services::HostMem::HostMemRegion::flush(), esi::services::HostMem::HostMemRegion::getDevicePtr(), esi::services::HostMem::HostMemRegion::getPtr(), and print().
Referenced by hostmemTest().
|
static |
Definition at line 117 of file esitester.cpp.
Referenced by aggregateHostmemBandwidthTest().
|
static |
Definition at line 133 of file esitester.cpp.
Referenced by aggregateHostmemBandwidthTest().
|
static |
Definition at line 1048 of file esitester.cpp.
References esi::MessageData::as(), esi::HWModule::getChildren(), esi::Logger::info(), and esi::toHex().
Referenced by main().
| int main | ( | int | argc, |
| const char * | argv[] | ||
| ) |
Definition at line 176 of file esitester.cpp.
References aggregateHostmemBandwidthTest(), autoSerialCoordTranslateTest(), bandwidthTest(), esi::Manifest::buildAccelerator(), callbackTest(), channelTest(), esi::CliParser::connect(), coordTranslateTest(), defaultWidths, defaultWidthsStr(), dmaTest(), esi::Logger::error(), esi::CliParser::esiParse(), esi::CliParser::getContext(), esi::Context::getLogger(), hostmemBandwidthTest(), hostmemTest(), esi::Logger::info(), loopbackAddTest(), resetTest(), serialCoordTranslateTest(), streamingAddTest(), and streamingAddTranslatedTest().
|
static |
Definition at line 1157 of file esitester.cpp.
References esi::HWModule::getChildren(), hostmemTest(), and esi::Logger::info().
Referenced by main().
|
static |
Definition at line 2069 of file esitester.cpp.
References esi::TypedWritePort< T, SkipTypeCheck >::connect(), esi::ReadChannelPort::connect(), esi::TypedWritePort< T, SkipTypeCheck >::disconnect(), esi::ReadChannelPort::disconnect(), esi::HWModule::getChildren(), esi::Logger::info(), esi::ReadChannelPort::read(), and esi::TypedWritePort< T, SkipTypeCheck >::write().
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 1410 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::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 1575 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::MessageData::getSize(), esi::Logger::info(), StreamingAddTranslatedArg::inputLength, esi::ReadChannelPort::read(), and esi::WriteChannelPort::write().
Referenced by main().
|
constexpr |
Definition at line 84 of file esitester.cpp.
Referenced by defaultWidthsStr(), and main().