RRZE-HPC / kerncraft

Loop Kernel Analysis and Performance Modeling Toolkit
GNU Affero General Public License v3.0
88 stars 24 forks source link

vector_sum throws exception with roofline model #83

Closed psteinb closed 6 years ago

psteinb commented 6 years ago

just installed kerncraft from the repo (ref d82c7b87dd09b0c2c2241a1fd8aa3283fc18538f) and saw this:

$ kerncraft -p Roofline -m /home/steinbac/software/kerncraft/repo/examples/machine-files/IvyBridgeEP_E5-2660v2.yml /home/steinbac/software/kerncraft/repo/examples/kernels/vector_sum.c -D N 1000 
                                   kerncraft                                    
/home/steinbac/software/kerncraft/repo/examples/kernels/vector_sum.c-m /home/steinbac/software/kerncraft/repo/examples/machine-files/IvyBridgeEP_E5-2660v2.yml
-D N 1000
----------------------------------- Roofline -----------------------------------
Traceback (most recent call last):
  File "/home/steinbac/software/kerncraft/master/bin/kerncraft", line 11, in <module>
    load_entry_point('kerncraft==0.6.2', 'console_scripts', 'kerncraft')()
  File "/home/steinbac/software/kerncraft/master/lib/python3.6/site-packages/kerncraft-0.6.2-py3.6.egg/kerncraft/kerncraft.py", line 284, in main
    run(parser, args)
  File "/home/steinbac/software/kerncraft/master/lib/python3.6/site-packages/kerncraft-0.6.2-py3.6.egg/kerncraft/kerncraft.py", line 250, in run
    model.analyze()
  File "/home/steinbac/software/kerncraft/master/lib/python3.6/site-packages/kerncraft-0.6.2-py3.6.egg/kerncraft/models/roofline.py", line 163, in analyze
    self.calculate_cache_access()
  File "/home/steinbac/software/kerncraft/master/lib/python3.6/site-packages/kerncraft-0.6.2-py3.6.egg/kerncraft/models/roofline.py", line 86, in calculate_cache_access
    write_offsets = set([item for sublist in write_offsets for item in sublist])
  File "/home/steinbac/software/kerncraft/master/lib/python3.6/site-packages/kerncraft-0.6.2-py3.6.egg/kerncraft/models/roofline.py", line 86, in <listcomp>
    write_offsets = set([item for sublist in write_offsets for item in sublist])
TypeError: 'NoneType' object is not iterable

the same command with the add.c kernel works just fine.

cod3monk commented 6 years ago

included fix in version 0.6.3 (currently building and soon on pypi)