Using pmod_grove_imu code available

Similar to this topic I only get 2 Hz if I want to read accelerometer, gyroscope and magnetometer. I am measuring as follows:

import time
from pynq.overlays.base import BaseOverlay
from pynq.lib.pmod import Grove_IMU
from pynq.lib.pmod import PMOD_GROVE_G3

base = BaseOverlay("base.bit")
mb_info = {'ip_name':'iop_pmoda/mb_bram_ctrl' ,'rst_name':'mb_iop_pmoda_reset'}
gr_pin = PMOD_GROVE_G3  # SDA on 3, SCL on 7 (PMOD A): https://pynq.readthedocs.io/en/v2.0/pynq_libr$
imu = Grove_IMU(mb_info, gr_pin)
imu.reset()

SampleFreq=30
delay=1/SampleFreq

while True:
    start_time = time.time()
    accl = imu.get_accl()
    print("Accelerator: ", accl)
    mag = imu.get_compass()
    print("Magnetometer: ", mag)
    gyro = imu.get_gyro()
    print("Gyroscope: ", gyro)
    elapsed_time = time.time() - start_time
    print("Total time: ", elapsed_time, "\n")
    time.sleep(delay)

And obtaining always:

Accelerator:  [0.02, 0.02, 1.03]
Magnetometer:  [0.88, 0.59, 5.86]
Gyroscope:  [-0.43, 1.19, 0.66]
Total time:  0.43114256858825684 

It would be nice to read at at least 30 Hz. @cathalmccabe @rock any idea?

Thank you.