astra-sim-alibabacloud/astra-sim/system/memory/SimpleMemory.hh (32 lines of code) (raw):
/******************************************************************************
This source code is licensed under the MIT license found in the
LICENSE file in the root directory of this source tree.
*******************************************************************************/
#ifndef __SIMPLEMEMORY_HH__
#define __SIMPLEMEMORY_HH__
#include "astra-sim/system/AstraMemoryAPI.hh"
#include "astra-sim/system/AstraNetworkAPI.hh"
namespace AstraSim {
class SimpleMemory : public AstraMemoryAPI {
public:
double last_read_request_serviced;
double last_write_request_serviced;
double npu_access_bw_GB;
double nic_access_bw_GB;
double access_latency;
uint64_t nic_read_request_count;
uint64_t nic_write_request_count;
uint64_t npu_read_request_count;
uint64_t npu_write_request_count;
AstraNetworkAPI* NI;
SimpleMemory(
AstraNetworkAPI* NI,
double access_latency,
double npu_access_bw_GB,
double nic_access_bw_GB);
void set_network_api(AstraNetworkAPI* astraNetworkApi);
uint64_t npu_mem_read(uint64_t size);
uint64_t npu_mem_write(uint64_t size);
uint64_t nic_mem_read(uint64_t size);
uint64_t nic_mem_write(uint64_t size);
uint64_t mem_read(uint64_t size);
uint64_t mem_write(uint64_t size);
};
} // namespace AstraSim
#endif