diff --git a/README.md b/README.md
index 360e698bc803913e8dcc01981b8c22ed3ac4e1fa..d7385bac92454d416a98dd22a419300e8a0a3cb0 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@ This project provides tools to measure the energy consumption of Flower-based fe
 - [Installation](#installation)
 - [Usage](#usage)
   - [FL framework](#fl-framework)
-  - [Configure instances](#configure-instance)
+  - [Configure instances for CPU](#configure-instance-for-cpu)
   - [Run exp](#run-exp)
 - [Quickstart](#quickstart)
   - [Step 1. Reserve the Hosts in G5K](#step-1-reserve-the-hosts-in-g5k)
@@ -51,13 +51,13 @@ cd Run
 ### FL framework
 FL scripts (includes server and client scripts) can be updated, example in dir `Flower_v1`.
 
-### Configure instance
+### Configure instance for CPU
 Configure instances of experiment in a json format, structure is shown below.
 
   - **instances** includes **"1"**, **"2"** ,... are identifies of each instance.
   - **instance**: name of instance.
   - **output_dir**: location stores the output files (experiment log and energy monitoring output).
-  - **dvfs**: choose only one in 3 settings, detects all available CPU frequencies and go through all of them.
+  - **dvfs_cpu**: choose only one in 3 settings.
     - `dummy`: for testing in min and max CPU freq (`false` or `true`).
     - `baseline`: for testing in max CPU freq (`false` or `true`).
     - `frequencies`: Limits to the provided list of frequencies (`null` or `int list []`).
@@ -80,7 +80,7 @@ Configure instances of experiment in a json format, structure is shown below.
             "1": {
                 "instance": "",
                 "output_dir": "",
-                "dvfs": {
+                "dvfs_cpu": {
                     "dummy": true,
                     "baseline": false,
                     "frequencies": null
@@ -112,6 +112,25 @@ Configure instances of experiment in a json format, structure is shown below.
     }
     ```
 
+### Configure instance for GPU
+
+- The configuration is as same CPU, except **dvfs** role. In GPU config, the role is **dvfs_gpu**.  
+Choose only one in 3 settings (steps - zoomfrom - zoomto use for one setting).
+    - `dummy`: for testing in min and max GPU freq (`false` or `true`).
+    - `baseline`: for testing in max GPU freq (`false` or `true`).
+    - `steps`: steps to jump in range/window of frequencies (int).
+    - `zoomfrom`: freq start
+    - `zoomto`: freq stop
+
+  ```json
+  "dvfs_gpu": {
+                "dummy": true,
+                "baseline": false,
+                "steps": 2,
+                "zoomfrom": 0,
+                "zoomto": 0
+            },
+  ```
 
 ### Run exp
 2 options of experiment: run single instance or all instances (a campaign).
@@ -137,17 +156,25 @@ Configure instances of experiment in a json format, structure is shown below.
 ### Step 1. Reserve the Hosts in G5K
 
 Reserve the required number of hosts (*See the [document of G5K](https://www.grid5000.fr/w/Getting_Started#Reserving_resources_with_OAR:_the_basics) for more details*)  
-<u>For example</u>: Reserve 4 hosts (1 server + 3 clients) for 2 hours:
+<u>For example</u>: 
+
+Reserve 4 hosts (CPU) (1 server + 3 clients) for 2 hours:
 ```bash
 oarsub -I -l host=4,walltime=2
 ```
+Reserve 4 hosts (GPU) (1 server + 3 clients) for 2 hours:
+```bash
+oarsub -p "gpu_count>0" -l host=4,walltime=2 -t exotic -I #lyon
+oarsub -p "gpu_count>0" -l host=4,walltime=2 -I #lille
+```
+
 Make sure your are in`eflwr/Run/`:
 ```bash
 cd Run
 ```
 
 ### Step 2. Configure
-Create the JSON configuration file (e.g. `config_instances.json`) to specify experiment details includes one or more instances.
+Create the JSON configuration file (e.g. `config_instances.json` for CPU and `config_instances_1.json` for GPU) to specify experiment details includes one or more instances.
 
 ```bash
 vim config_instances.json
diff --git a/Run/config_instances.json b/Run/config_instances.json
index f5cb789a7cb99be17d0562689f865937949b2707..b48fb2711de7c2ef83cd78c1b6e43fdedcc97f76 100644
--- a/Run/config_instances.json
+++ b/Run/config_instances.json
@@ -3,7 +3,7 @@
         "1": {
             "instance": "fedAvg_cifar10",
             "output_dir": "/home/mdo/Framework/eflwr/Log",
-            "dvfs": {
+            "dvfs_cpu": {
                 "dummy": true,
                 "baseline": false,
                 "frequencies": null
@@ -57,7 +57,7 @@
         "2": {
             "instance": "fedAvg2Clients_cifar10",
             "output_dir": "/home/mdo/Framework/eflwr/Log",
-            "dvfs": {
+            "dvfs_cpu": {
                 "dummy": true,
                 "baseline": false,
                 "frequencies": null
diff --git a/Run/config_instances_1.json b/Run/config_instances_1.json
new file mode 100644
index 0000000000000000000000000000000000000000..ecde3587356087c559fab914ea35199164067859
--- /dev/null
+++ b/Run/config_instances_1.json
@@ -0,0 +1,116 @@
+{
+    "instances": {
+        "1": {
+            "instance": "fedAvg_cifar10",
+            "output_dir": "/home/mdo/Framework/eflwr/Log",
+            "dvfs_gpu": {
+                "dummy": true,
+                "baseline": false,
+                "steps": 2,
+                "zoomfrom": 0,
+                "zoomto": 0
+            },
+            "server": {
+                "command": "python3",
+                "args": [
+                    "/home/mdo/Framework/eflwr/Flower_v1/server_1.py",
+                    "-r 1",
+                    "-s fedAvg"
+                ],
+                "ip": "172.16.66.76",
+                "port": 8080
+                },
+            "clients": [
+            {
+                "name": "client1",
+                "command": "python3",
+                "args": [
+                    "/home/mdo/Framework/eflwr/Flower_v1/client_1.py",
+                    "cifar10",
+                    "1",
+                    "3"
+                ],
+                "ip": "172.16.66.77"
+            },
+            {
+                "name": "client2",
+                "command": "python3",
+                "args": [
+                    "/home/mdo/Framework/eflwr/Flower_v1/client_1.py",
+                    "cifar10",
+                    "2",
+                    "3"
+                ],
+                "ip": "172.16.66.78"
+            },
+            {
+                "name": "client3",
+                "command": "python3",
+                "args": [
+                    "/home/mdo/Framework/eflwr/Flower_v1/client_1.py",
+                    "cifar10",
+                    "3",
+                    "3"
+                ],
+                "ip": "172.16.66.79"
+            }
+            ]
+        },
+        "2": {
+            "instance": "fedAvg2Clients_cifar10",
+            "output_dir": "/home/mdo/Framework/eflwr/Log",
+            "dvfs_gpu": {
+                "dummy": true,
+                "baseline": false,
+                "steps": 2,
+                "zoomfrom": 0,
+                "zoomto": 0
+            },
+            "server": {
+                "command": "python3",
+                "args": [
+                    "/home/mdo/Framework/eflwr/Flower_v1/server_1.py",
+                    "-r 1",
+                    "-s fedAvg2Clients"
+                ],
+                "ip": "172.16.66.76",
+                "port": 8080
+            },
+            "clients": [
+            {
+                "name": "client1",
+                "command": "python3",
+                "args": [
+                    "/home/mdo/Framework/eflwr/Flower_v1/client_1.py",
+                    "cifar10",
+                    "1",
+                    "3"
+                ],
+                "ip": "172.16.66.77"
+            },
+            {
+                "name": "client2",
+                "command": "python3",
+                "args": [
+                    "/home/mdo/Framework/eflwr/Flower_v1/client_1.py",
+                    "cifar10",
+                    "2",
+                    "3"
+                ],
+                "ip": "172.16.66.78"
+            },
+            {
+                "name": "client3",
+                "command": "python3",
+                "args": [
+                    "/home/mdo/Framework/eflwr/Flower_v1/client_1.py",
+                    "cifar10",
+                    "3",
+                    "3"
+                ],
+                "ip": "172.16.66.79"
+            }
+            ]
+        }
+    }
+}
diff --git a/Run/measure_instance.py b/Run/measure_instance.py
index ba5ae25983f393edcb37bcdd4e75d4168782bf5f..9be54c1c27a0238aab46c995f8c755f57ccaa61f 100644
--- a/Run/measure_instance.py
+++ b/Run/measure_instance.py
@@ -6,7 +6,7 @@ import json
 import time
 import expetator.experiment as experiment
 from expetator.monitors import Mojitos
-from expetator.leverages import Dvfs
+from expetator.leverages import Dvfs, GpuClock
 #import run_flwr as run_flwr
 
 # Set up argument parser
@@ -37,13 +37,27 @@ if instance_key not in config_data["instances"]:
 # Load config instance 
 config = config_data["instances"][instance_key]
 
-# Extract DVFS from config
-dvfs_config = config.get("dvfs", {})
-dvfs = Dvfs(
-    dummy=dvfs_config.get("dummy", False),
-    baseline=dvfs_config.get("baseline", False),
-    frequencies=dvfs_config.get("frequencies", None)
-)
+# extract DVFS infor (cpu and gpu)
+if "dvfs_cpu" in config:
+    dvfs_config = config["dvfs_cpu"]
+    dvfs = Dvfs(
+        dummy=dvfs_config.get("dummy", False),
+        baseline=dvfs_config.get("baseline", False),
+        frequencies=dvfs_config.get("frequencies", None)
+    )
+    LEVERAGES = [dvfs]
+elif "dvfs_gpu" in config:
+    dvfs_config = config["dvfs_gpu"]
+    dvfs = GpuClock(
+        dummy=dvfs_config.get("dummy", False),
+        baseline=dvfs_config.get("baseline", False),
+        steps=dvfs_config.get("steps", 2),
+        zoomfrom=dvfs_config.get("zoomfrom", 0),
+        zoomto=dvfs_config.get("zoomto", 0)
+    )
+    LEVERAGES = [dvfs]
+else:
+    LEVERAGES = []
 
 # Log directory
 log_dir = config["output_dir"]
@@ -78,7 +92,7 @@ if __name__ == "__main__":
     experiment.run_experiment(
         flower_log_dir, 
         [DemoBench()],
-        leverages=[dvfs],
+        leverages= LEVERAGES,
         monitors=[Mojitos(sensor_set={'user', 'rxp', 'dram0'})],
         times=args.repeat
     )
\ No newline at end of file