|
From: | sumit kumar |
Subject: | Re: [Discuss-gnuradio] cmake warning with -DENABLE_PERFORMANCE_COUNTERS-On (gr-ieee80211) |
Date: | Wed, 12 Jul 2017 02:19:24 +0200 |
So, the performance counters need to be enabled in your GNU Radio preferences; I don't think editing the configuration input template helps, unless you build & reinstall (don't do that). Instead, run `gnuradio-config-info --prefs` first and check whether PerfCounters are enabled.
To query these counters, you can
- use the gr::block::pc_bla_foo() methods of every block, or
- use ControlPort at run time, for example using the gr-ctrlport-monitor, which you can add to a flowgraph elegantly from GRC. This, however, requires both an enabled controlport in CMake as well as a working and found Thrift installation at CMake time – check whether the CMake output contain
-- Configuring gr-ctrlport support...
-- Dependency Boost_FOUND = 1
-- Dependency SWIG_FOUND = TRUE
-- Dependency SWIG_VERSION_CHECK = TRUE
-- Dependency ENABLE_GNURADIO_RUNTIME = ON
-- Enabling gr-ctrlport support.
-- Override with -DENABLE_GR_CTRLPORT=ON/OFF
AND, directly below
-- Checking for module 'thrift'
-- Found thrift, version XX.XX.XXAND, below
-- Python checking for Thrift - found
AND, below
-- Found THRIFT: /usr/lib64/libthrift.so
-- Found and enabling Thrift backend to ControlPort
On 07/11/2017 03:11 PM, sumit kumar wrote:
Ok I understood. Now I have a following question.
I did a grep in the build directory
grep -r 'work_time_total' .
And I found that indeed its there as said on https://gnuradio.org/doc/doxygen/page_perf_counters. html It seems a lot of task is already been done ! :)
Then I opened gnuradio-runtime.conf.in and did the following (as mentioned in the documentation)[PerfCounters]on = Trueexport = True#clock = threadclock = monotonic
Now I run my application , for example wifi_rx.py
Where do I see the timings ?
I opened the ieee802_11_swig.py, and I see def pc_work_time_total(self) is there for all the blocks, but how to use them :-/
Can you give a use case, for example :
In line 1953 of ieee802_11_swig.py, we have
class frame_equalizer_sptr(object):
and inside this calss we have the function :
def pc_work_time_total(self):"""pc_work_time_total(frame_equalizer_sptr self) -> float""" return _ieee802_11_swig.frame_equalizer_sptr_pc_work_time_ total(self)
Now what should I do to see total time consumed by frame_equalizer and where do I expect the output.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
./swig/ieee802_11_swigPYTHON_wrap.cxx: { (char *)"mac_sptr_pc_work_time_ total", _wrap_mac_sptr_pc_work_time_ total, METH_VARARGS, (char *)"mac_sptr_pc_work_time_ total(mac_sptr self) -> float"}, ./swig/ieee802_11_swigPYTHON_wrap.cxx: { (char *)"mapper_sptr_pc_work_time_ total", _wrap_mapper_sptr_pc_work_ time_total, METH_VARARGS, (char *)"mapper_sptr_pc_work_time_ total(mapper_sptr self) -> float"}, ./swig/ieee802_11_swigPYTHON_wrap.cxx: { (char *)"moving_average_cc_sptr_pc_ work_time_total", _wrap_moving_average_cc_sptr_ pc_work_time_total, METH_VARARGS, (char *)"moving_average_cc_sptr_pc_ work_time_total(moving_ average_cc_sptr self) -> float"}, ./swig/ieee802_11_swigPYTHON_wrap.cxx: { (char *)"moving_average_ff_sptr_pc_ work_time_total", _wrap_moving_average_ff_sptr_ pc_work_time_total, METH_VARARGS, (char *)"moving_average_ff_sptr_pc_ work_time_total(moving_ average_ff_sptr self) -> float"}, ./swig/ieee802_11_swigPYTHON_wrap.cxx: { (char *)"parse_mac_sptr_pc_work_ time_total", _wrap_parse_mac_sptr_pc_work_ time_total, METH_VARARGS, (char *)"parse_mac_sptr_pc_work_ time_total(parse_mac_sptr self) -> float"}, ./swig/ieee802_11_swigPYTHON_wrap.cxx: { (char *)"sync_long_sptr_pc_work_ time_total", _wrap_sync_long_sptr_pc_work_ time_total, METH_VARARGS, (char *)"sync_long_sptr_pc_work_ time_total(sync_long_sptr self) -> float"}, ./swig/ieee802_11_swigPYTHON_wrap.cxx: { (char *)"sync_short_sptr_pc_work_ time_total", _wrap_sync_short_sptr_pc_work_ time_total, METH_VARARGS, (char *)"sync_short_sptr_pc_work_ time_total(sync_short_sptr self) -> float"},
On 11 July 2017 at 13:17, Marcus Müller <address@hidden> wrote:
______________________________Hi Sumit,
exactly, only GNU Radio needs to be built with that flag – functionally, it's something that is done in the scheduler, not in the blocks the scheduler runs.Does only GNU Radio need to be built with the flag -DENABLE_PERFORMANCE_COUNTERS or the OOT projects too ?
Best regards,
Marcus
On 07/11/2017 12:59 PM, sumit kumar wrote:
Hi,
I have to do timing analysis of individual blocks of gr-ieee80211I have built my gnuradio with the following
~/rfnoc/src/gnuradio/build$ cmake -DCMAKE_INSTALL_PREFIX=/home/john/rfnoc -DCMAKE_BUILD_TYPE=RelWithDebI nfo -DENABLE_PERFORMANCE_COUNTERS= On -Werror ../
build was successful.
And again I built gr-ieee80211 with following
~/rfnoc/src/gr-ieee-80211/build$ cmake -DCMAKE_INSTALL_PREFIX=/home/j ohn/rfnoc -DCMAKE_BUILD_TYPE=RelWithDebI nfo -DENABLE_PERFORMANCE_COUNTERS= On -Werror ../
However I get a warning that
CMake Warning:Manually-specified variables were not used by the project:
ENABLE_PERFORMANCE_COUNTERSIn order to do timing analysis of individual blocks of gr-ieee80211, I am following the documentation at
Does only GNU Radio need to be built with the flag -DENABLE_PERFORMANCE_COUNTERS or the OOT projects too ?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ address@hidden:~/rfnoc/src/gr-ieee-80211/build$ cmake -DCMAKE_INSTALL_PREFIX=/home/j ohn/rfnoc -DCMAKE_BUILD_TYPE=RelWithDebI nfo -DENABLE_PERFORMANCE_COUNTERS= On -Werror ../
-- Boost version: 1.58.0-- Found the following Boost libraries:-- filesystem-- systemChecking for GNU Radio Module: RUNTIME* INCLUDES=/home/john/rfnoc/include * LIBS=/home/john/rfnoc/lib/libgnuradio-runtime.so;/home/john/ rfnoc/lib/libgnuradio-pmt.so GNURADIO_RUNTIME_FOUND = TRUEChecking for GNU Radio Module: DIGITAL* INCLUDES=/home/john/rfnoc/include * LIBS=/home/john/rfnoc/lib/libgnuradio-digital.so;/home/john/ rfnoc/lib/libgnuradio-runtime. so;/home/john/rfnoc/lib/libgnu radio-pmt.so GNURADIO_DIGITAL_FOUND = TRUEChecking for GNU Radio Module: FFT* INCLUDES=/home/john/rfnoc/include * LIBS=/home/john/rfnoc/lib/libgnuradio-fft.so;/home/john/rfno c/lib/libgnuradio-runtime.so;/ home/john/rfnoc/lib/libgnuradi o-pmt.so GNURADIO_FFT_FOUND = TRUEChecking for GNU Radio Module: FILTER* INCLUDES=/home/john/rfnoc/include * LIBS=/home/john/rfnoc/lib/libgnuradio-filter.so;/home/john/r fnoc/lib/libgnuradio-fft.so;/h ome/john/rfnoc/lib/libgnuradio -runtime.so;/home/john/rfnoc/l ib/libgnuradio-pmt.so GNURADIO_FILTER_FOUND = TRUEChecking for GNU Radio Module: PMT* INCLUDES=/home/john/rfnoc/include * LIBS=/home/john/rfnoc/lib/libgnuradio-runtime.so;/home/john/ rfnoc/lib/libgnuradio-pmt.so GNURADIO_PMT_FOUND = TRUE-- Found LOG4CPP: /usr/lib/liblog4cpp.so---- Checking for module SWIG-- Found SWIG version 3.0.8.-- Configuring done-- Generating doneCMake Warning:Manually-specified variables were not used by the project:
ENABLE_PERFORMANCE_COUNTERS
-- Build files have been written to: /home/john/rfnoc/src/gr-ieee-80211/build
_______________________________________________ Discuss-gnuradio mailing list address@hidden https://lists.gnu.org/mailman/ listinfo/discuss-gnuradio _________________ Discuss-gnuradio mailing list address@hidden https://lists.gnu.org/mailman/ listinfo/discuss-gnuradio --Sumit Kumar
[Prev in Thread] | Current Thread | [Next in Thread] |