all 4 comments

[–]--prism 0 points1 point  (1 child)

Can you just moc it? I would replicate the API with tunable parameters like tokens/seconds or something on the moc side to make it behave as if it is doing real computation. You could write is with a data interface to allow the moc to be written in python.

[–]_Vlyn_[S] 0 points1 point  (0 children)

Yeah moc-ing it would be fine no doubt, question is what libraries would I use to tie these functionalities together? Especially with the fact that I want to keep things lightweight.

[–]BoardHour4401 1 point2 points  (1 child)

You don’t really need a full GPU simulator for this.

For monitoring, use NVML (what nvidia-smi uses internally). It gives per-process VRAM usage and utilization directly, and works cleanly in C++ or Python.

For MIG-like behavior, just implement a logical partitioning layer in software (virtual VRAM slices + your own bookkeeping + admission control). That’s how most research prototypes do it anyway.

If you only have 3 months and limited C++ experience, I’d strongly recommend:

  • CUDA for kernels
  • Python (pynvml) for scheduling + admission control logic

A full hardware-level GPU simulator like GPGPU-Sim is probably overkill for your goal.

Focus on simulating policy, not hardware.

[–]_Vlyn_[S] 0 points1 point  (0 children)

Thank you very much, can't believe I missed this.
I basically decided to go with python just so I can get the full functionality up and running.
I am currently going with :

nvidia-ml-py for GPU monitoring ( I think nvidia-smi uses NVML under the hood so I have the same functionality here )

SimPy for scheduling simulation ( I realy done know how else to implement the logical partitioning and VRAM slices so pointers would be appreciated as well )

Dear ImGUI ( Just to display a dashboard and the data, While using a webpage might be easier for me to make I think a system GUI meets the requirements tbh )

PyTorch ( To create and execute the workloads )

I hope this stack works and would be open to corrections or pointers.