Dynamic QoS Network Launch & Analysis
₹1500-3000 INR
Πληρώθηκε κατά την παράδοση
(NoC with private L1, 2 shared L2 diagonally opposite, and 2 directory controllers, which are colocated with L2) ready. This network will be in X86 architecture following either MESI/MOESI/CHI or any other except MI protocol. Along with this, you have to simulate at least 1 benchmark (choose any from the PARSEC benchmark suite. Find out which core the application is getting mapped to. Give me proof (This implies putting in print statements that will give output to the terminal at runtime). Find how many threads are running and whether each thread runs on the same core or on different cores (put in print statements to get me proof)Your final task is to implement dynamic QoS buffer allocation at the memory controller in Gem5 Garnet. Specifically, while executing an application in gem5, the memory controller will prepare a history for every request packet it receives. This history contains the CPU id from where the request was generated and the timestamp at which it is received at the memory controller for each memory controller (Since your network has 2 memory controllers). This history is maintained every 100ms. When 100ms are over, it must execute a Python script (made by you). The Python script returns you the ratios for each CPU in which the number of buffers at the memory controller must be changed. For example, for 64 CPUs in your network, you will receive 64 values from this Python script in your gem5. Now, change the buffer allocation scheme to restrict the number of buffer spaces each CPU can use according to this [login to view URL] a NoC network of 8*8 with private L1 caches, and shared
L2 caches. Other parameters of NoC, such as routing protocol,
number of buffers, virtual channels, cache coherence policy can
be left to their default values. However, you should be able to tell
eachSystem Setup:
Let your system setup look something like given below:
Note: PE denotes the processing element.
Objective:
The aim of this project is to devise a dynamic Quality of service (QoS) policy
corresponding to different cores for memory controller’s bandwidth allocation. The tool you
will be using is Gem5. Gem5 has a built-in QoS policy framework. Your goal is to extend this
QoS policy such that
i. Goal 1: It can prioritize network packets reaching the memory controller
according to the static QoS policy specified by the user. This prioritization is
based on the core which generates the data request packet. Suppose Core 0 and
core 5 initiates a data request from the off-chip main memory and according to
the QoS policy. Core 5 has a preference over core 0. The data request for core 0
will be served later than core 5.
ii. Goal 2: Modify the policy to be dynamic after analyzing a parameter for a
constant amount of time. Dynamic means the priority values for cores will change
at runtime after analyzing some network metrics.
Note: Gem5 is written in C++ and Python. Students will be required to code their way into
Gem5 to achieve this objective.
Mid-evaluation Deliverables
Implemented static QoS policy in Gem5. The framework should be well-tested with the
execution of different applications, which will be provided to you.
End-evaluation Deliverables
Implemented dynamic QoS policy in Gem5. The framework should be well-tested with the
execution of different applications, which will be provided to you.
Provide detailed log outputs, including each buffer allocation change, timestamp for each step, and per-thread performance metrics. CHI Ensure to track latency for each memory request and core. Dynamically analyze the latency of each memory request to adjust priority values. Please use built-in performance measurement tools available in gem5 and provide detailed log outputs for each buffer allocation change, including timestamps and per-thread performance metrics.
Ταυτότητα Εργασίας: #38820386
Σχετικά με την εργασία
1 freelancer κάνει προσφορά κατά μέσο όρο ₹2250 για αυτή τη δουλειά
Hi, I can help with setting up the NoC network in Gem5 and implementing the dynamic QoS policy as described. I have experience with Python, C++, and working on cache coherence and memory systems. I’ll ensure the framew Περισσότερα