Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to measure DRAM energy consumption. #26

Open
hafizuriu opened this issue Feb 5, 2023 · 2 comments
Open

Unable to measure DRAM energy consumption. #26

hafizuriu opened this issue Feb 5, 2023 · 2 comments

Comments

@hafizuriu
Copy link

hafizuriu commented Feb 5, 2023

@altor @rouvoy @chakib-belgaid @danglotb
I have the following code snippet running on Ubuntu 22.04.1

from pyJoules.energy_meter import EnergyContext
from pyJoules.device.rapl_device import RaplDramDomain
from pyJoules.handler.csv_handler import CSVHandler


csv_handler = CSVHandler('result.csv')

with EnergyContext(handler=csv_handler, domains=[RaplDramDomain(0)], start_tag='Test') as ctx:
    train()
 csv_handler.save_data()

I get the following stack trace error:

Traceback (most recent call last):
  File "/home/hafizur/test.py", line 8, in <module>
    with EnergyContext(handler=csv_handler, domains=[RaplDramDomain(0)], start_tag='Test') as ctx:
  File "/home/hafizur/anaconda3/envs/myenv/lib/python3.10/site-packages/pyJoules/energy_meter.py", line 322, in __init__
    devices = DeviceFactory.create_devices(domains)
  File "/home/hafizur/anaconda3/envs/myenv/lib/python3.10/site-packages/pyJoules/device/device_factory.py", line 78, in create_devices
    device.configure(domains=grouped_domains[device_type])
  File "/home/hafizur/anaconda3/envs/myenv/lib/python3.10/site-packages/pyJoules/device/rapl_device.py", line 211, in configure
    Device.configure(self, domains)
  File "/home/hafizur/anaconda3/envs/myenv/lib/python3.10/site-packages/pyJoules/device/device.py", line 64, in configure
    raise NoSuchDomainError(domain)
pyJoules.exception.NoSuchDomainError

Does pyJoles able to measure the energy consumption of DRAM?
N.B: It can measure energy consumption of NVIDIA GPU. But think it measures energy in milli-joule, not micro-joule

@chakib-belgaid
Copy link
Contributor

Hi hafizuriu, it seems like you are attempting to determine the DRAM usage on a laptop computer. Unfortunately, the RAPL technology (the registers provided by INTEL which we use to measure the energy consumption) does not support measuring DRAM for desktop CPUs like Intel Core 5, 7, 9, 11, etc. It is only available for XENON CPUs. Let me know if this answers your question.

@hafizuriu
Copy link
Author

hafizuriu commented Feb 8, 2023

@altor @rouvoy @chakib-belgaid @danglotb

Thank you for your response @chakib-belgaid
My other confusion is about the outputs that pyJoules return.
It return as follows-
begin timestamp : 1675697491.336882; tag : foo; duration : 3.7640533447265625; package_0 : 153976351.0; core_0 : 127869606.0; uncore_0 : 0.0; nvidia_gpu_0 : 192276

My question is if I want to measure the CPU energy consumption, what values should I have to take into account?
What is the unit of package_0?

I think package_0 return energy in uJ (1e-6J) and Nvidia_gpu return in mJ (1e-3J)

Could you please help me to clarify this issues?

My machine details:
11th Gen Intel® Core™ i9-11900 @ 2.50GHz × 16
NVIDIA GeForce RTX 3060

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants