all commits for a clean git history
BIN
pyplot/.DS_Store
vendored
Normal file
163
pyplot/.gitignore
vendored
Normal file
@@ -0,0 +1,163 @@
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
wheels/
|
||||
share/python-wheels/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
MANIFEST
|
||||
|
||||
# PyInstaller
|
||||
# Usually these files are written by a python script from a template
|
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||
*.manifest
|
||||
*.spec
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.nox/
|
||||
.coverage
|
||||
.coverage.*
|
||||
.cache
|
||||
nosetests.xml
|
||||
coverage.xml
|
||||
*.cover
|
||||
*.py,cover
|
||||
.hypothesis/
|
||||
.pytest_cache/
|
||||
cover/
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
*.pot
|
||||
|
||||
# Django stuff:
|
||||
*.log
|
||||
local_settings.py
|
||||
db.sqlite3
|
||||
db.sqlite3-journal
|
||||
|
||||
# Flask stuff:
|
||||
instance/
|
||||
.webassets-cache
|
||||
|
||||
# Scrapy stuff:
|
||||
.scrapy
|
||||
|
||||
# Sphinx documentation
|
||||
docs/_build/
|
||||
|
||||
# PyBuilder
|
||||
.pybuilder/
|
||||
target/
|
||||
|
||||
# Jupyter Notebook
|
||||
.ipynb_checkpoints
|
||||
|
||||
# IPython
|
||||
profile_default/
|
||||
ipython_config.py
|
||||
|
||||
# pyenv
|
||||
# For a library or package, you might want to ignore these files since the code is
|
||||
# intended to run in multiple environments; otherwise, check them in:
|
||||
# .python-version
|
||||
|
||||
# pipenv
|
||||
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
||||
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
||||
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
||||
# install all needed dependencies.
|
||||
#Pipfile.lock
|
||||
|
||||
# poetry
|
||||
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
||||
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
||||
# commonly ignored for libraries.
|
||||
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
||||
#poetry.lock
|
||||
|
||||
# pdm
|
||||
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
||||
#pdm.lock
|
||||
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
||||
# in version control.
|
||||
# https://pdm.fming.dev/#use-with-ide
|
||||
.pdm.toml
|
||||
|
||||
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
||||
__pypackages__/
|
||||
|
||||
# Celery stuff
|
||||
celerybeat-schedule
|
||||
celerybeat.pid
|
||||
|
||||
# SageMath parsed files
|
||||
*.sage.py
|
||||
|
||||
# Environments
|
||||
.env
|
||||
.venv
|
||||
env/
|
||||
venv/
|
||||
ENV/
|
||||
env.bak/
|
||||
venv.bak/
|
||||
|
||||
# Spyder project settings
|
||||
.spyderproject
|
||||
.spyproject
|
||||
|
||||
# Rope project settings
|
||||
.ropeproject
|
||||
|
||||
# mkdocs documentation
|
||||
/site
|
||||
|
||||
# mypy
|
||||
.mypy_cache/
|
||||
.dmypy.json
|
||||
dmypy.json
|
||||
|
||||
# Pyre type checker
|
||||
.pyre/
|
||||
|
||||
# pytype static type analyzer
|
||||
.pytype/
|
||||
|
||||
# Cython debug symbols
|
||||
cython_debug/
|
||||
|
||||
# PyCharm
|
||||
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
||||
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
||||
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
||||
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
||||
#.idea/
|
||||
|
||||
# Pyplot virtual environment
|
||||
.pyplot
|
||||
156
pyplot/CHERI-performance-counters.txt
Normal file
@@ -0,0 +1,156 @@
|
||||
br_mis_pred
|
||||
br_pred
|
||||
br_immed_spec
|
||||
br_return_spec
|
||||
br_indirect_spec
|
||||
cpu_cycles
|
||||
bus_access
|
||||
bus_cycles
|
||||
bus_access_rd
|
||||
bus_access_wr
|
||||
bus_access_rd_ctag
|
||||
bus_access_wr_ctag
|
||||
l1i_cache_refill
|
||||
l1i_tlb_refill
|
||||
l1d_cache_refill
|
||||
l1d_cache
|
||||
l1d_tlb_refill
|
||||
l1i_cache
|
||||
l1d_cache_wb
|
||||
l2d_cache
|
||||
l2d_cache_refill
|
||||
l2d_cache_wb
|
||||
l2d_cache_allocate
|
||||
l1d_tlb
|
||||
l1i_tlb
|
||||
l3d_cache_allocate
|
||||
l3d_cache_refill
|
||||
l3d_cache
|
||||
l2d_tlb_refill
|
||||
l2d_tlb
|
||||
dtlb_walk
|
||||
itlb_walk
|
||||
ll_cache_rd
|
||||
ll_cache_miss_rd
|
||||
l1d_cache_rd
|
||||
l1d_cache_wr
|
||||
l1d_cache_refill_rd
|
||||
l1d_cache_refill_wr
|
||||
l1d_cache_refill_inner
|
||||
l1d_cache_refill_outer
|
||||
l1d_cache_wb_victim
|
||||
l1d_cache_wb_clean
|
||||
l1d_cache_inval
|
||||
l1d_tlb_refill_rd
|
||||
l1d_tlb_refill_wr
|
||||
l1d_tlb_rd
|
||||
l1d_tlb_wr
|
||||
l2d_cache_rd
|
||||
l2d_cache_wr
|
||||
l2d_cache_refill_rd
|
||||
l2d_cache_refill_wr
|
||||
l2d_cache_wb_victim
|
||||
l2d_cache_wb_clean
|
||||
l2d_cache_inval
|
||||
l2d_tlb_refill_rd
|
||||
l2d_tlb_refill_wr
|
||||
l2d_tlb_rd
|
||||
l2d_tlb_wr
|
||||
l3d_cache_rd
|
||||
l1d_cache_rd_ctag
|
||||
l1d_cache_wr_ctag
|
||||
l1d_cache_wb_ctag
|
||||
l1d_cache_refill_rd_ctag
|
||||
l1d_cache_refill_wr_ctag
|
||||
l1d_cache_refill_inner_ctag
|
||||
l1d_cache_refill_outer_ctag
|
||||
l1d_cache_wb_victim_ctag
|
||||
l1d_cache_wb_clean_ctag
|
||||
l2d_cache_rd_ctag
|
||||
l2d_cache_wr_ctag
|
||||
l2d_cache_refill_rd_ctag
|
||||
l2d_cache_wb_victim_ctag
|
||||
l2d_cache_wb_clean_ctag
|
||||
l2d_cache_inval_ctag
|
||||
exc_taken
|
||||
memory_error
|
||||
exc_undef
|
||||
exc_svc
|
||||
exc_pabort
|
||||
exc_dabort
|
||||
exc_irq
|
||||
exc_fiq
|
||||
exc_smc
|
||||
exc_hvc
|
||||
exc_trap_pabort
|
||||
exc_trap_dabort
|
||||
exc_trap_other
|
||||
exc_trap_irq
|
||||
exc_trap_fiq
|
||||
sw_incr
|
||||
inst_retired
|
||||
exc_return
|
||||
cid_write_retired
|
||||
inst_spec
|
||||
ttbr_write_retired
|
||||
br_retired
|
||||
br_mis_pred_retired
|
||||
ldrex_spec
|
||||
strex_pass_spec
|
||||
strex_fail_spec
|
||||
strex_spec
|
||||
ld_spec
|
||||
st_spec
|
||||
ldst_spec
|
||||
dp_spec
|
||||
ase_spec
|
||||
vfp_spec
|
||||
pc_write_spec
|
||||
crypto_spec
|
||||
isb_spec
|
||||
dsb_spec
|
||||
dmb_spec
|
||||
rc_ld_spec
|
||||
rc_st_spec
|
||||
cid_el0_write_retired
|
||||
ddc_write_retired
|
||||
ddc_read_spec
|
||||
cap_ld_spec
|
||||
cap_st_spec
|
||||
cap_alt_ld_spec
|
||||
cap_alt_st_spec
|
||||
alt_ld_spec
|
||||
alt_st_spec
|
||||
ldct_spec
|
||||
ldct_no_cap_spec
|
||||
mem_access
|
||||
remote_access
|
||||
mem_access_rd
|
||||
mem_access_wr
|
||||
unaligned_ld_spec
|
||||
unaligned_st_spec
|
||||
unaligned_ldst_spec
|
||||
br_mis_pred_rs
|
||||
br_mis_pred_c64
|
||||
br_mis_pred_sys
|
||||
pccrf_full
|
||||
executive_entry
|
||||
executive_exit
|
||||
inst_spec_a64
|
||||
inst_spec_c64
|
||||
inst_spec_cvtd
|
||||
inst_spec_scbnds_nonexact
|
||||
cdbm_set_sc
|
||||
dc_zva_ret
|
||||
ldct_refill
|
||||
stct_refill
|
||||
cnt_st_zero_byte
|
||||
cnt_st_zero_16_bytes
|
||||
mem_access_rd_ctag
|
||||
mem_access_wr_ctag
|
||||
cap_mem_access_rd
|
||||
cap_mem_access_wr
|
||||
inst_spec_restricted
|
||||
ld_cap_perm_clr_ctag
|
||||
stall_frontend
|
||||
stall_backend
|
||||
BIN
pyplot/Histogram/.DS_Store
vendored
Normal file
51
pyplot/Histogram/Large/LL_CACHE_MISS.py
Normal file
@@ -0,0 +1,51 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array(np.array([int(x) for x in """5527931
|
||||
8487180
|
||||
8358903
|
||||
8502471
|
||||
9044249
|
||||
4808340""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
xpoints = np.array([(i) for i, x in enumerate(ypoints, 1)])
|
||||
|
||||
ypoints1 = np.array(np.array([int(x) for x in """4215408
|
||||
4561976
|
||||
4696311
|
||||
4662084
|
||||
4618990
|
||||
2799270""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
L1D_CACHE_LMISS_RD
|
||||
The counter counts each Memory-read operation to the Level 1 data or unified cache counted by L1D_CACHE that incurs additional latency because it returns data from outside of the Level 1 data or unified cache of this PE.
|
||||
The event indicates to software that the access missed in the Level 1 data or unified cache and might have a significant performance impact due to the additional latency compared to the latency of an access that hits in the Level 1 data or unified cache.
|
||||
The counter does not count:
|
||||
• Accesses where the additional latency is unlikely to be significantly performance-impacting. For example, if the access hits in another cache in the same local cluster, and the additional latency is small when compared to a miss in all Level 1 caches that the access looks up in and results in an access being made to a Level 2 cache or elsewhere beyond the Level 1 data or unified cache.
|
||||
• A miss that does not cause a new cache refill but is satisfied from a previous miss.
|
||||
An implementation is not required to measure the latency, nor to track the access to determine whether the additional latency caused a performance impact. An implementation can extend the definition of this event with additional scenarios where an access might have a significant performance impact due to additional latency for the access.
|
||||
It is IMPLEMENTATION DEFINED whether accesses that result from cache maintenance operations are counted.
|
||||
If the cache is shared and the Effective value of PMEVTYPER<n>_EL0.MT for the counter is 0, then the counter counts only events Attributable to the PE counting the event. For a multithreaded processor implementation, if the cache is shared by PEs other than the PEs in the multithreaded processor and the Effective value of PMEVTYPER<n>_EL0.MT for the counter is 1, then the counter counts only events Attributable to PEs in the multithreaded processor. In all other cases, it is IMPLEMENTATION DEFINED whether only events Attributable to the PE counting the event or all events are counted, and might depend on the Effective value of PMEVTYPER<n>_EL1.MT.
|
||||
PMCEID1_EL0[25] reads as 1 if this event is implemented and 0 otherwise. This event must be implemented if FEAT_PMUv3p4 is implemented.
|
||||
'''
|
||||
# plt.title("L1D cache miss read \n ARM Performance counter: L1D_CACHE_LMISS_RD \n each Memory-read operation or Memory-write operation that causes a cache \n access to at least the Level 1 data or unified cache. This includes each complete or partial translation table walk that causes an access to memory, including to data or translation table walk caches. \n Histogram large")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("LL cache miss")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('ll_cache_histogram_large.png')
|
||||
51
pyplot/Histogram/Large/TLB-DTLB-walk.py
Normal file
@@ -0,0 +1,51 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array([int(x) for x in """61346
|
||||
61955
|
||||
64896
|
||||
64751
|
||||
64359
|
||||
24896""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
xpoints = np.array([(i) for i, x in enumerate(ypoints, 1)])
|
||||
|
||||
ypoints1 = np.array([int(x) for x in """48953
|
||||
74277
|
||||
52782
|
||||
64321
|
||||
64184
|
||||
36170""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
DTLB_WALK
|
||||
The counter counts each access counted by L1D_TLB that causes a
|
||||
refill of a data or unified
|
||||
TLB involving at least one translation table walk access.
|
||||
This includes each complete or partial translation table walk that causes an
|
||||
access to memory, including to data or translation table walk caches.
|
||||
If Armv8.7 is not implemented, it is IMPLEMENTATION DEFINED whether accesses
|
||||
that cause an update of an existing TLB entry involving at least one translation
|
||||
table walk access are counted. If Armv8.7 is implemented, these accesses
|
||||
are counted.
|
||||
'''
|
||||
# plt.title("Data TLB access, read \n ARM Performance counter: DTLB_WALK \n Data TLB access with at least one translation table walk \n This includes each complete or partial translation table walk that causes an access to memory, including to data or translation table walk caches. \n Histogram large")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("DTLB walks")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('dtlb_walk_histogram_large.png')
|
||||
46
pyplot/Histogram/Large/TLB-L1-DATA-ACCESS.py
Normal file
@@ -0,0 +1,46 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array([int(x) for x in """2470621494
|
||||
2375100932
|
||||
2670296613
|
||||
2645401007
|
||||
2876843895
|
||||
1166193957""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
xpoints = np.array([(i) for i, x in enumerate(ypoints, 1)])
|
||||
|
||||
ypoints1 = np.array([int(x) for x in """2273131353
|
||||
2561823604
|
||||
2693697356
|
||||
2606093836
|
||||
2631231896
|
||||
1161666024""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
L1D_TLB
|
||||
The counter counts each Memory-read operation or Memory-write operation that causes a TLB
|
||||
access to at least the Level 1 data or unified TLB.
|
||||
Each access to a TLB entry is counted including multiple accesses caused by single instructions
|
||||
such as LDM or STM.
|
||||
'''
|
||||
# plt.title("Level 1 data TLB access, read \n ARM Performance counter: L1D_TLB_RD \n This counter counts each access counted by \n L1D_TLB that is a Memory-read operation. \n Histogram large")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("L1 DTLB reads")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('tlb_l1_data.png')
|
||||
50
pyplot/Histogram/Large/TLB-L2D_TLB.py
Normal file
@@ -0,0 +1,50 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
|
||||
ypoints = np.array([int(x) for x in """140262
|
||||
156781
|
||||
156217
|
||||
155686
|
||||
139859
|
||||
80438""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
xpoints = np.array([(i) for i, x in enumerate(ypoints, 1)])
|
||||
|
||||
ypoints1 = np.array([int(x) for x in """121530
|
||||
144628
|
||||
154478
|
||||
143992
|
||||
148316
|
||||
86682""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
DTLB_WALK
|
||||
The counter counts each Memory-read operation or Memory-write operation that causes a
|
||||
TLB access to at least the Level 2 data or unified TLB.
|
||||
Each access to a TLB entry is counted including refills
|
||||
of Level 1 TLBs.
|
||||
The counter does not count the access if the access i
|
||||
s due to a TLB maintenance instruction.
|
||||
'''
|
||||
# plt.title("Level 2 data TLB acces, read \n ARM Performance counter: L2D_TLB \n The counter counts each Memory-read operation or Memory-write operation that causes a TLB access to at least the Level 2 data or unified TLB. \n Histogram large")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("L2 DTLB reads")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
plt.savefig('tlb_l2_data.png')
|
||||
BIN
pyplot/Histogram/Large/dtlb_walk_histogram_large.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
pyplot/Histogram/Large/ll_cache_histogram_large.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
pyplot/Histogram/Large/tlb_l1_data_histogram_large.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
pyplot/Histogram/Large/tlb_l2_data_histogram_large.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
43
pyplot/Histogram/Medium/LL_CACHE_MISS.py
Normal file
@@ -0,0 +1,43 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array(np.array([int(x) for x in """7409968
|
||||
5549675""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
xpoints = np.array([(i) for i, x in enumerate(ypoints, 1)])
|
||||
|
||||
ypoints1 = np.array(np.array([int(x) for x in """3946380
|
||||
3530306""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
L1D_CACHE_LMISS_RD
|
||||
The counter counts each Memory-read operation to the Level 1 data or unified cache counted by L1D_CACHE that incurs additional latency because it returns data from outside of the Level 1 data or unified cache of this PE.
|
||||
The event indicates to software that the access missed in the Level 1 data or unified cache and might have a significant performance impact due to the additional latency compared to the latency of an access that hits in the Level 1 data or unified cache.
|
||||
The counter does not count:
|
||||
• Accesses where the additional latency is unlikely to be significantly performance-impacting. For example, if the access hits in another cache in the same local cluster, and the additional latency is small when compared to a miss in all Level 1 caches that the access looks up in and results in an access being made to a Level 2 cache or elsewhere beyond the Level 1 data or unified cache.
|
||||
• A miss that does not cause a new cache refill but is satisfied from a previous miss.
|
||||
An implementation is not required to measure the latency, nor to track the access to determine whether the additional latency caused a performance impact. An implementation can extend the definition of this event with additional scenarios where an access might have a significant performance impact due to additional latency for the access.
|
||||
It is IMPLEMENTATION DEFINED whether accesses that result from cache maintenance operations are counted.
|
||||
If the cache is shared and the Effective value of PMEVTYPER<n>_EL0.MT for the counter is 0, then the counter counts only events Attributable to the PE counting the event. For a multithreaded processor implementation, if the cache is shared by PEs other than the PEs in the multithreaded processor and the Effective value of PMEVTYPER<n>_EL0.MT for the counter is 1, then the counter counts only events Attributable to PEs in the multithreaded processor. In all other cases, it is IMPLEMENTATION DEFINED whether only events Attributable to the PE counting the event or all events are counted, and might depend on the Effective value of PMEVTYPER<n>_EL1.MT.
|
||||
PMCEID1_EL0[25] reads as 1 if this event is implemented and 0 otherwise. This event must be implemented if FEAT_PMUv3p4 is implemented.
|
||||
'''
|
||||
# plt.title("L1D cache miss read \n ARM Performance counter: L1D_CACHE_LMISS_RD \n each Memory-read operation or Memory-write operation that causes a cache \n access to at least the Level 1 data or unified cache. This includes each complete or partial translation table walk that causes an access to memory, including to data or translation table walk caches. \n Histogram medium")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("cache miss")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('ll_data_histogram_medium.png')
|
||||
43
pyplot/Histogram/Medium/TLB-DTLB-walk.py
Normal file
@@ -0,0 +1,43 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array([int(x) for x in """60650
|
||||
38635""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
xpoints = np.array([(i) for i, x in enumerate(ypoints, 1)])
|
||||
|
||||
ypoints1 = np.array([int(x) for x in """41348
|
||||
39676""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
DTLB_WALK
|
||||
The counter counts each access counted by L1D_TLB that causes a
|
||||
refill of a data or unified
|
||||
TLB involving at least one translation table walk access.
|
||||
This includes each complete or partial translation table walk that causes an
|
||||
access to memory, including to data or translation table walk caches.
|
||||
If Armv8.7 is not implemented, it is IMPLEMENTATION DEFINED whether accesses
|
||||
that cause an update of an existing TLB entry involving at least one translation
|
||||
table walk access are counted. If Armv8.7 is implemented, these accesses
|
||||
are counted.
|
||||
'''
|
||||
# plt.title("Data TLB access, read \n ARM Performance counter: DTLB_WALK \n Data TLB access with at least one translation table walk \n This includes each complete or partial translation table walk that causes an access to memory, including to data or translation table walk caches. \n Histogram medium")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("DTLB walks")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('dtlb_walk_histogram_medium.png')
|
||||
38
pyplot/Histogram/Medium/TLB-L1-DATA-ACCESS.py
Normal file
@@ -0,0 +1,38 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array([int(x) for x in """2031641198
|
||||
1792581571""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
xpoints = np.array([(i) for i, x in enumerate(ypoints, 1)])
|
||||
|
||||
ypoints1 = np.array([int(x) for x in """2041386981
|
||||
2064066636""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
L1D_TLB
|
||||
The counter counts each Memory-read operation or Memory-write operation that causes a TLB
|
||||
access to at least the Level 1 data or unified TLB.
|
||||
Each access to a TLB entry is counted including multiple accesses caused by single instructions
|
||||
such as LDM or STM.
|
||||
'''
|
||||
# plt.title("Level 1 data TLB access, read \n ARM Performance counter: L1D_TLB_RD \n This counter counts each access counted by \n L1D_TLB that is a Memory-read operation. \n Histogram medium")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("L1 DTLB reads")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('l1_data_histogram_medium.png')
|
||||
43
pyplot/Histogram/Medium/TLB-L2D_TLB.py
Normal file
@@ -0,0 +1,43 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
|
||||
ypoints = np.array([int(x) for x in """159185
|
||||
95485""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
xpoints = np.array([(i) for i, x in enumerate(ypoints, 1)])
|
||||
|
||||
ypoints1 = np.array([int(x) for x in """137015
|
||||
89117""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
DTLB_WALK
|
||||
The counter counts each Memory-read operation or Memory-write operation that causes a
|
||||
TLB access to at least the Level 2 data or unified TLB.
|
||||
Each access to a TLB entry is counted including refills
|
||||
of Level 1 TLBs.
|
||||
The counter does not count the access if the access i
|
||||
s due to a TLB maintenance instruction.
|
||||
'''
|
||||
# plt.title("Level 2 data TLB acces, read \n ARM Performance counter: L2D_TLB \n The counter counts each Memory-read operation or Memory-write operation that causes a TLB access to at least the Level 2 data or unified TLB. \n Histogram medium")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("L2 DTLB reads")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('tlb_l2_histogram_medium.png')
|
||||
BIN
pyplot/Histogram/Medium/dtlb_walk_histogram_medium.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
pyplot/Histogram/Medium/l1_data_histogram_medium.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
pyplot/Histogram/Medium/ll_data_histogram_medium.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
pyplot/Histogram/Medium/tlb_l2_histogram_medium.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
60
pyplot/Histogram/Physically-contigous.txt
Normal file
@@ -0,0 +1,60 @@
|
||||
# p/ll_cache_miss_rd
|
||||
2100870
|
||||
# p/L2D_TLB
|
||||
70087
|
||||
# p/DTLB_WALK
|
||||
18523
|
||||
# p/L1D_TLB_RD
|
||||
947507000
|
||||
# p/L2D_TLB
|
||||
64140
|
||||
# p/ll_cache_miss_rd
|
||||
7409968
|
||||
5549675
|
||||
# p/L2D_TLB
|
||||
155420
|
||||
91895
|
||||
# p/DTLB_WALK
|
||||
60650
|
||||
38635
|
||||
# p/L1D_TLB_RD
|
||||
2031641198
|
||||
1792581571
|
||||
# p/L2D_TLB
|
||||
159185
|
||||
95485
|
||||
# p/ll_cache_miss_rd
|
||||
5527931
|
||||
8487180
|
||||
8358903
|
||||
8502471
|
||||
9044249
|
||||
4808340
|
||||
# p/L2D_TLB
|
||||
123036
|
||||
155010
|
||||
180732
|
||||
155543
|
||||
154428
|
||||
64508
|
||||
# p/DTLB_WALK
|
||||
61346
|
||||
61955
|
||||
64896
|
||||
64751
|
||||
64359
|
||||
24896
|
||||
# p/L1D_TLB_RD
|
||||
2470621494
|
||||
2375100932
|
||||
2670296613
|
||||
2645401007
|
||||
2876843895
|
||||
1166193957
|
||||
# p/L2D_TLB
|
||||
140262
|
||||
156781
|
||||
156217
|
||||
155686
|
||||
139859
|
||||
80438
|
||||
41
pyplot/Histogram/Small/LL_CACHE_MISS.py
Normal file
@@ -0,0 +1,41 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array([2100870,19384360])
|
||||
|
||||
xpoints = ["Malloc Physically contigous with bounds","System memory allocator"]
|
||||
|
||||
# ypoints1 = np.array([19384360])
|
||||
|
||||
# xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
plt.bar(xpoints, ypoints)
|
||||
# plt.bar(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
L1D_CACHE_LMISS_RD
|
||||
The counter counts each Memory-read operation to the Level 1 data or unified cache counted by L1D_CACHE that incurs additional latency because it returns data from outside of the Level 1 data or unified cache of this PE.
|
||||
The event indicates to software that the access missed in the Level 1 data or unified cache and might have a significant performance impact due to the additional latency compared to the latency of an access that hits in the Level 1 data or unified cache.
|
||||
The counter does not count:
|
||||
• Accesses where the additional latency is unlikely to be significantly performance-impacting. For example, if the access hits in another cache in the same local cluster, and the additional latency is small when compared to a miss in all Level 1 caches that the access looks up in and results in an access being made to a Level 2 cache or elsewhere beyond the Level 1 data or unified cache.
|
||||
• A miss that does not cause a new cache refill but is satisfied from a previous miss.
|
||||
An implementation is not required to measure the latency, nor to track the access to determine whether the additional latency caused a performance impact. An implementation can extend the definition of this event with additional scenarios where an access might have a significant performance impact due to additional latency for the access.
|
||||
It is IMPLEMENTATION DEFINED whether accesses that result from cache maintenance operations are counted.
|
||||
If the cache is shared and the Effective value of PMEVTYPER<n>_EL0.MT for the counter is 0, then the counter counts only events Attributable to the PE counting the event. For a multithreaded processor implementation, if the cache is shared by PEs other than the PEs in the multithreaded processor and the Effective value of PMEVTYPER<n>_EL0.MT for the counter is 1, then the counter counts only events Attributable to PEs in the multithreaded processor. In all other cases, it is IMPLEMENTATION DEFINED whether only events Attributable to the PE counting the event or all events are counted, and might depend on the Effective value of PMEVTYPER<n>_EL1.MT.
|
||||
PMCEID1_EL0[25] reads as 1 if this event is implemented and 0 otherwise. This event must be implemented if FEAT_PMUv3p4 is implemented.
|
||||
'''
|
||||
# plt.title("L1D cache miss read \n ARM Performance counter: L1D_CACHE_LMISS_RD \n each Memory-read operation or Memory-write operation that causes a cache \n access to at least the Level 1 data or unified cache. This includes each complete or partial translation table walk that causes an access to memory, including to data or translation table walk caches. \n Histogram medium")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("L1D cache misses")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('ll_histogram_small.png')
|
||||
37
pyplot/Histogram/Small/TLB-DTLB-walk.py
Normal file
@@ -0,0 +1,37 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array([18523,16667])
|
||||
|
||||
xpoints = ["Malloc Physically contigous with bounds","System memory allocator"]
|
||||
|
||||
|
||||
plt.bar(xpoints, ypoints)
|
||||
|
||||
'''
|
||||
DTLB_WALK
|
||||
The counter counts each access counted by L1D_TLB that causes a
|
||||
refill of a data or unified
|
||||
TLB involving at least one translation table walk access.
|
||||
This includes each complete or partial translation table walk that causes an
|
||||
access to memory, including to data or translation table walk caches.
|
||||
If Armv8.7 is not implemented, it is IMPLEMENTATION DEFINED whether accesses
|
||||
that cause an update of an existing TLB entry involving at least one translation
|
||||
table walk access are counted. If Armv8.7 is implemented, these accesses
|
||||
are counted.
|
||||
'''
|
||||
# plt.title("Data TLB access, read \n ARM Performance counter: DTLB_WALK \n Data TLB access with at least one translation table walk \n This includes each complete or partial translation table walk that causes an access to memory, including to data or translation table walk caches. \n Histogram medium")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("DTLB walks")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('dtlb_walk_histogram_small.png')
|
||||
31
pyplot/Histogram/Small/TLB-L1-DATA-ACCESS.py
Normal file
@@ -0,0 +1,31 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array([947507000,771906538])
|
||||
|
||||
xpoints = ["Malloc Physically contigous with bounds","System memory allocator"]
|
||||
|
||||
plt.bar(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
|
||||
'''
|
||||
L1D_TLB
|
||||
The counter counts each Memory-read operation or Memory-write operation that causes a TLB
|
||||
access to at least the Level 1 data or unified TLB.
|
||||
Each access to a TLB entry is counted including multiple accesses caused by single instructions
|
||||
such as LDM or STM.
|
||||
'''
|
||||
# plt.title("Level 1 data TLB access, read \n ARM Performance counter: L1D_TLB_RD \n This counter counts each access counted by \n L1D_TLB that is a Memory-read operation. \n Histogram medium")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("L1 DTLB reads")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
# plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('l1d_tlb_walk_histogram_small.png')
|
||||
33
pyplot/Histogram/Small/TLB-L2D_TLB.py
Normal file
@@ -0,0 +1,33 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
|
||||
ypoints = np.array([64140,46518])
|
||||
|
||||
xpoints = ["Malloc Physically contigous with bounds","System memory allocator"]
|
||||
|
||||
plt.bar(xpoints, ypoints)
|
||||
|
||||
'''
|
||||
The counter counts each Memory-read operation or Memory-write operation that causes a
|
||||
TLB access to at least the Level 2 data or unified TLB.
|
||||
Each access to a TLB entry is counted including refills
|
||||
of Level 1 TLBs.
|
||||
The counter does not count the access if the access i
|
||||
s due to a TLB maintenance instruction.
|
||||
'''
|
||||
# plt.title("Level 2 data TLB acces, read \n ARM Performance counter: L2D_TLB \n The counter counts each Memory-read operation or Memory-write operation that causes a TLB access to at least the Level 2 data or unified TLB. \n Histogram medium")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("L2 DTLB reads")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('l2d_tlb_walk_histogram_small.png')
|
||||
BIN
pyplot/Histogram/Small/dtlb_walk_histogram_small.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
pyplot/Histogram/Small/l1d_tlb_walk_histogram_small.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
pyplot/Histogram/Small/l2d_tlb_walk_histogram_small.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
pyplot/Histogram/Small/ll_histogram_small.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
60
pyplot/Histogram/System-Allocator.txt
Normal file
@@ -0,0 +1,60 @@
|
||||
# p/ll_cache_miss_rd
|
||||
1938436
|
||||
# p/L2D_TLB
|
||||
66692
|
||||
# p/DTLB_WALK
|
||||
16667
|
||||
# p/L1D_TLB_RD
|
||||
771906538
|
||||
# p/L2D_TLB
|
||||
46518
|
||||
# p/ll_cache_miss_rd
|
||||
3946380
|
||||
3530306
|
||||
# p/L2D_TLB
|
||||
141073
|
||||
105804
|
||||
# p/DTLB_WALK
|
||||
41348
|
||||
39676
|
||||
# p/L1D_TLB_RD
|
||||
2041386981
|
||||
2064066636
|
||||
# p/L2D_TLB
|
||||
137015
|
||||
89117
|
||||
# p/ll_cache_miss_rd
|
||||
4215408
|
||||
4561976
|
||||
4696311
|
||||
4662084
|
||||
4618990
|
||||
2799270
|
||||
# p/L2D_TLB
|
||||
115992
|
||||
154771
|
||||
151387
|
||||
148955
|
||||
148124
|
||||
57792
|
||||
# p/DTLB_WALK
|
||||
48953
|
||||
74277
|
||||
52782
|
||||
64321
|
||||
64184
|
||||
36170
|
||||
# p/L1D_TLB_RD
|
||||
2273131353
|
||||
2561823604
|
||||
2693697356
|
||||
2606093836
|
||||
2631231896
|
||||
1161666024
|
||||
# p/L2D_TLB
|
||||
121530
|
||||
144628
|
||||
154478
|
||||
143992
|
||||
148316
|
||||
86682
|
||||
75
pyplot/Kmeans/3-Dimentions/LL_CACHE_MISS.py
Normal file
@@ -0,0 +1,75 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array(np.array([int(x) for x in """836772
|
||||
495429
|
||||
446419
|
||||
366613
|
||||
397234
|
||||
505776
|
||||
356928
|
||||
449455
|
||||
480582
|
||||
427964
|
||||
400058
|
||||
420493
|
||||
452870
|
||||
499538
|
||||
419145
|
||||
443761
|
||||
417189
|
||||
370320""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
xpoints = np.array([(i) for i, x in enumerate(ypoints, 1)])
|
||||
|
||||
ypoints1 = np.array(np.array([int(x) for x in """723197
|
||||
556124
|
||||
352857
|
||||
538444
|
||||
628566
|
||||
751980
|
||||
602713
|
||||
550526
|
||||
530137
|
||||
529691
|
||||
430821
|
||||
390686
|
||||
418356
|
||||
520712
|
||||
515506
|
||||
676283
|
||||
659655
|
||||
523928""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
L1D_CACHE_LMISS_RD
|
||||
The counter counts each Memory-read operation to the Level 1 data or unified cache counted by L1D_CACHE that incurs additional latency because it returns data from outside of the Level 1 data or unified cache of this PE.
|
||||
The event indicates to software that the access missed in the Level 1 data or unified cache and might have a significant performance impact due to the additional latency compared to the latency of an access that hits in the Level 1 data or unified cache.
|
||||
The counter does not count:
|
||||
• Accesses where the additional latency is unlikely to be significantly performance-impacting. For example, if the access hits in another cache in the same local cluster, and the additional latency is small when compared to a miss in all Level 1 caches that the access looks up in and results in an access being made to a Level 2 cache or elsewhere beyond the Level 1 data or unified cache.
|
||||
• A miss that does not cause a new cache refill but is satisfied from a previous miss.
|
||||
An implementation is not required to measure the latency, nor to track the access to determine whether the additional latency caused a performance impact. An implementation can extend the definition of this event with additional scenarios where an access might have a significant performance impact due to additional latency for the access.
|
||||
It is IMPLEMENTATION DEFINED whether accesses that result from cache maintenance operations are counted.
|
||||
If the cache is shared and the Effective value of PMEVTYPER<n>_EL0.MT for the counter is 0, then the counter counts only events Attributable to the PE counting the event. For a multithreaded processor implementation, if the cache is shared by PEs other than the PEs in the multithreaded processor and the Effective value of PMEVTYPER<n>_EL0.MT for the counter is 1, then the counter counts only events Attributable to PEs in the multithreaded processor. In all other cases, it is IMPLEMENTATION DEFINED whether only events Attributable to the PE counting the event or all events are counted, and might depend on the Effective value of PMEVTYPER<n>_EL1.MT.
|
||||
PMCEID1_EL0[25] reads as 1 if this event is implemented and 0 otherwise. This event must be implemented if FEAT_PMUv3p4 is implemented.
|
||||
'''
|
||||
# plt.title("L1D cache miss read \n ARM Performance counter: L1D_CACHE_LMISS_RD \n each Memory-read operation or Memory-write operation that causes a cache \n access to at least the Level 1 data or unified cache. This includes each complete or partial translation table walk that causes an access to memory, including to data or translation table walk caches. \n Kmeans C program with Cluster size 3")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("DTLB walks")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('ll_kmeans_3_dimentions.png')
|
||||
75
pyplot/Kmeans/3-Dimentions/TLB-DTLB-walk.py
Normal file
@@ -0,0 +1,75 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array([3625,
|
||||
1016,
|
||||
1546,
|
||||
1556,
|
||||
1424,
|
||||
1382,
|
||||
1598,
|
||||
1544,
|
||||
1369,
|
||||
1301,
|
||||
1410,
|
||||
1415,
|
||||
1520,
|
||||
1291,
|
||||
1425,
|
||||
1653,
|
||||
1496,
|
||||
951])
|
||||
|
||||
xpoints = np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])
|
||||
|
||||
ypoints1 = np.array([6798,
|
||||
2144,
|
||||
2327,
|
||||
2234,
|
||||
2779,
|
||||
3046,
|
||||
2824,
|
||||
2762,
|
||||
2857,
|
||||
2404,
|
||||
3236,
|
||||
2473,
|
||||
2517,
|
||||
2558,
|
||||
3065,
|
||||
3222,
|
||||
3235,
|
||||
4939])
|
||||
|
||||
xpoints1 = np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
DTLB_WALK
|
||||
The counter counts each access counted by L1D_TLB that causes a
|
||||
refill of a data or unified
|
||||
TLB involving at least one translation table walk access.
|
||||
This includes each complete or partial translation table walk that causes an
|
||||
access to memory, including to data or translation table walk caches.
|
||||
If Armv8.7 is not implemented, it is IMPLEMENTATION DEFINED whether accesses
|
||||
that cause an update of an existing TLB entry involving at least one translation
|
||||
table walk access are counted. If Armv8.7 is implemented, these accesses
|
||||
are counted.
|
||||
'''
|
||||
# plt.title("Data TLB access, read \n ARM Performance counter: DTLB_WALK \n Data TLB access with at least one translation table walk \n This includes each complete or partial translation table walk that causes an access to memory, including to data or translation table walk caches. \n Kmeans C program with Cluster size 3")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("DTLB walks")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('dtlb_walk_kmeans_3_dimentions.png')
|
||||
72
pyplot/Kmeans/3-Dimentions/TLB-L2D_TLB.py
Normal file
@@ -0,0 +1,72 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array([78303,
|
||||
34734,
|
||||
129682,
|
||||
93214,
|
||||
59616,
|
||||
111134,
|
||||
75559,
|
||||
85767,
|
||||
96804,
|
||||
87956,
|
||||
83874,
|
||||
72777,
|
||||
80302,
|
||||
59289,
|
||||
105762,
|
||||
62793,
|
||||
78365,
|
||||
77091])
|
||||
|
||||
xpoints = np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])
|
||||
|
||||
ypoints1 = np.array([127978,
|
||||
79046,
|
||||
67101,
|
||||
99081,
|
||||
186824,
|
||||
111734,
|
||||
120426,
|
||||
65293,
|
||||
112589,
|
||||
113350,
|
||||
110875,
|
||||
74596,
|
||||
86142,
|
||||
77054,
|
||||
106211,
|
||||
133301,
|
||||
109764,
|
||||
68751])
|
||||
|
||||
xpoints1 = np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
DTLB_WALK
|
||||
The counter counts each Memory-read operation or Memory-write operation that causes a
|
||||
TLB access to at least the Level 2 data or unified TLB.
|
||||
Each access to a TLB entry is counted including refills
|
||||
of Level 1 TLBs.
|
||||
The counter does not count the access if the access i
|
||||
s due to a TLB maintenance instruction.
|
||||
'''
|
||||
# plt.title("Level 2 data TLB acces, read \n ARM Performance counter: L2D_TLB \n The counter counts each Memory-read operation or Memory-write operation that causes a TLB access to at least the Level 2 data or unified TLB. \n Kmeans C program with Cluster size 3")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("L2 DTLB reads")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('l2_tlb_kmeans_3_dimentions.png')
|
||||
68
pyplot/Kmeans/3-Dimentions/TLBbargraph.py
Normal file
@@ -0,0 +1,68 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array([1944100892,
|
||||
1929198745,
|
||||
2147407618,
|
||||
2361683504,
|
||||
2229290045,
|
||||
1936107919,
|
||||
1950196981,
|
||||
2316564611,
|
||||
2415777784,
|
||||
2251930639,
|
||||
1917048962,
|
||||
2122919883,
|
||||
2305445935,
|
||||
2216085132,
|
||||
2061970506,
|
||||
2077573288,
|
||||
2415427574])
|
||||
|
||||
xpoints = np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17])
|
||||
|
||||
ypoints1 = np.array([2001205195,
|
||||
2037350408,
|
||||
2077998800,
|
||||
2064361816,
|
||||
2370004326,
|
||||
2366505116,
|
||||
2433485997,
|
||||
2388982491,
|
||||
2622710065,
|
||||
2231849577,
|
||||
2213896383,
|
||||
1971144730,
|
||||
2279336623,
|
||||
2384236727,
|
||||
2159066740,
|
||||
1872922315,
|
||||
2046840068])
|
||||
|
||||
xpoints1 = np.array([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
L1D_TLB
|
||||
The counter counts each Memory-read operation or Memory-write operation that causes a TLB
|
||||
access to at least the Level 1 data or unified TLB.
|
||||
Each access to a TLB entry is counted including multiple accesses caused by single instructions
|
||||
such as LDM or STM.
|
||||
'''
|
||||
# plt.title("Level 1 data TLB access, read \n ARM Performance counter: L1D_TLB_RD \n This counter counts each access counted by \n L1D_TLB that is a Memory-read operation. \n Kmeans C program with Cluster size 3")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("L1 DTLB reads")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('l1_tlb_kmeans_3_dimentions.png')
|
||||
BIN
pyplot/Kmeans/3-Dimentions/dtlb_walk_kmeans_3_dimentions.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
pyplot/Kmeans/3-Dimentions/l1_tlb_kmeans_3_dimentions.png
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
pyplot/Kmeans/3-Dimentions/l2_tlb_kmeans_3_dimentions.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
pyplot/Kmeans/3-Dimentions/ll_kmeans_3_dimentions.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
359
pyplot/Kmeans/40-Dimentions/LL_CACHE_MISS.py
Normal file
@@ -0,0 +1,359 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array(np.array([int(x) for x in """1147403
|
||||
829036
|
||||
563124
|
||||
979733
|
||||
683541
|
||||
618378
|
||||
905917
|
||||
561979
|
||||
902313
|
||||
823260
|
||||
499959
|
||||
627898
|
||||
915499
|
||||
646610
|
||||
739437
|
||||
945235
|
||||
541299
|
||||
637887
|
||||
842954
|
||||
703414
|
||||
1291380
|
||||
675118
|
||||
671111
|
||||
585563
|
||||
585483
|
||||
951820
|
||||
791179
|
||||
701760
|
||||
552971
|
||||
696260
|
||||
902072
|
||||
815292
|
||||
826315
|
||||
740385
|
||||
805546
|
||||
736227
|
||||
690416
|
||||
769363
|
||||
825820
|
||||
1027783
|
||||
797795
|
||||
863187
|
||||
834350
|
||||
548714
|
||||
759409
|
||||
667769
|
||||
840026
|
||||
861216
|
||||
895136
|
||||
719523
|
||||
504731
|
||||
959369
|
||||
1052167
|
||||
668707
|
||||
558918
|
||||
778832
|
||||
681806
|
||||
1268380
|
||||
825940
|
||||
874677
|
||||
670802
|
||||
808349
|
||||
653938
|
||||
996132
|
||||
769110
|
||||
1077410
|
||||
714249
|
||||
660753
|
||||
551064
|
||||
867647
|
||||
556815
|
||||
687308
|
||||
780915
|
||||
604863
|
||||
936983
|
||||
818984
|
||||
697969
|
||||
1063845
|
||||
722724
|
||||
864795
|
||||
791971
|
||||
489493
|
||||
678041
|
||||
514280
|
||||
784758
|
||||
643920
|
||||
896146
|
||||
567640
|
||||
854350
|
||||
548957
|
||||
583866
|
||||
880357
|
||||
589791
|
||||
604616
|
||||
560377
|
||||
527240
|
||||
673535
|
||||
503032
|
||||
851726
|
||||
484139
|
||||
649485
|
||||
978010
|
||||
641704
|
||||
488143
|
||||
710347
|
||||
808049
|
||||
1035491
|
||||
695389
|
||||
441112
|
||||
929079
|
||||
622864
|
||||
516002
|
||||
902311
|
||||
783120
|
||||
687561
|
||||
687898
|
||||
525210
|
||||
731349
|
||||
1332534
|
||||
537479
|
||||
542351
|
||||
511237
|
||||
564299
|
||||
859176
|
||||
713889
|
||||
901452
|
||||
631327
|
||||
681258
|
||||
1035948
|
||||
634997
|
||||
455623
|
||||
851931
|
||||
612646
|
||||
902292
|
||||
787158
|
||||
660371
|
||||
791336
|
||||
702494
|
||||
644624
|
||||
764093
|
||||
946863
|
||||
984181
|
||||
666091
|
||||
571202
|
||||
590691
|
||||
1160676
|
||||
624435
|
||||
677302
|
||||
491699
|
||||
870564
|
||||
1096683
|
||||
701710
|
||||
767120
|
||||
886663
|
||||
847346
|
||||
726936
|
||||
828216
|
||||
731833
|
||||
1143815
|
||||
893945
|
||||
446303""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
xpoints = np.array([(i) for i, x in enumerate(ypoints, 1)])
|
||||
|
||||
ypoints1 = np.array(np.array([int(x) for x in """1603321
|
||||
906001
|
||||
831508
|
||||
1260778
|
||||
874222
|
||||
639952
|
||||
811423
|
||||
876933
|
||||
871938
|
||||
845695
|
||||
811517
|
||||
1078035
|
||||
1155039
|
||||
931630
|
||||
734393
|
||||
1040144
|
||||
897608
|
||||
567688
|
||||
1017724
|
||||
816640
|
||||
1156306
|
||||
1182610
|
||||
2087536
|
||||
935131
|
||||
564650
|
||||
781929
|
||||
1032678
|
||||
842187
|
||||
714283
|
||||
1512066
|
||||
903441
|
||||
821687
|
||||
750216
|
||||
1623056
|
||||
1113602
|
||||
602318
|
||||
1056833
|
||||
829348
|
||||
924366
|
||||
917254
|
||||
1417581
|
||||
1056215
|
||||
534696
|
||||
957581
|
||||
873314
|
||||
615740
|
||||
793892
|
||||
1166512
|
||||
508943
|
||||
509190
|
||||
656245
|
||||
1304353
|
||||
909374
|
||||
638685
|
||||
1848084
|
||||
1067142
|
||||
543667
|
||||
591408
|
||||
1215657
|
||||
952755
|
||||
1191746
|
||||
1779363
|
||||
780965
|
||||
966607
|
||||
618025
|
||||
1082331
|
||||
1177658
|
||||
1136390
|
||||
1914232
|
||||
570957
|
||||
846572
|
||||
577331
|
||||
1232137
|
||||
1037267
|
||||
1262158
|
||||
1029892
|
||||
1122356
|
||||
995490
|
||||
1174365
|
||||
1340139
|
||||
1097573
|
||||
621145
|
||||
649356
|
||||
1082100
|
||||
792184
|
||||
1046410
|
||||
1217530
|
||||
952589
|
||||
634895
|
||||
866331
|
||||
1560533
|
||||
870354
|
||||
692937
|
||||
1249514
|
||||
731255
|
||||
899044
|
||||
1132861
|
||||
871474
|
||||
1440239
|
||||
1109188
|
||||
915075
|
||||
1625844
|
||||
811510
|
||||
845837
|
||||
680654
|
||||
1527778
|
||||
556130
|
||||
761597
|
||||
1452068
|
||||
856231
|
||||
729522
|
||||
670614
|
||||
1449778
|
||||
554624
|
||||
965716
|
||||
1030135
|
||||
1018319
|
||||
609395
|
||||
630688
|
||||
1379329
|
||||
674255
|
||||
808523
|
||||
1098093
|
||||
1502941
|
||||
689121
|
||||
901665
|
||||
1173878
|
||||
637713
|
||||
756162
|
||||
988917
|
||||
959839
|
||||
581439
|
||||
618517
|
||||
1482465
|
||||
539794
|
||||
982852
|
||||
878227
|
||||
1259422
|
||||
774118
|
||||
667883
|
||||
1238176
|
||||
1393325
|
||||
721119
|
||||
1185418
|
||||
1324310
|
||||
605043
|
||||
1029433
|
||||
1029119
|
||||
582207
|
||||
1028124
|
||||
844517
|
||||
1594356
|
||||
1175972
|
||||
910822
|
||||
660335
|
||||
973991
|
||||
1048600
|
||||
521274
|
||||
1771930""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
L1D_CACHE_LMISS_RD
|
||||
The counter counts each Memory-read operation to the Level 1 data or unified cache counted by L1D_CACHE that incurs additional latency because it returns data from outside of the Level 1 data or unified cache of this PE.
|
||||
The event indicates to software that the access missed in the Level 1 data or unified cache and might have a significant performance impact due to the additional latency compared to the latency of an access that hits in the Level 1 data or unified cache.
|
||||
The counter does not count:
|
||||
• Accesses where the additional latency is unlikely to be significantly performance-impacting. For example, if the access hits in another cache in the same local cluster, and the additional latency is small when compared to a miss in all Level 1 caches that the access looks up in and results in an access being made to a Level 2 cache or elsewhere beyond the Level 1 data or unified cache.
|
||||
• A miss that does not cause a new cache refill but is satisfied from a previous miss.
|
||||
An implementation is not required to measure the latency, nor to track the access to determine whether the additional latency caused a performance impact. An implementation can extend the definition of this event with additional scenarios where an access might have a significant performance impact due to additional latency for the access.
|
||||
It is IMPLEMENTATION DEFINED whether accesses that result from cache maintenance operations are counted.
|
||||
If the cache is shared and the Effective value of PMEVTYPER<n>_EL0.MT for the counter is 0, then the counter counts only events Attributable to the PE counting the event. For a multithreaded processor implementation, if the cache is shared by PEs other than the PEs in the multithreaded processor and the Effective value of PMEVTYPER<n>_EL0.MT for the counter is 1, then the counter counts only events Attributable to PEs in the multithreaded processor. In all other cases, it is IMPLEMENTATION DEFINED whether only events Attributable to the PE counting the event or all events are counted, and might depend on the Effective value of PMEVTYPER<n>_EL1.MT.
|
||||
PMCEID1_EL0[25] reads as 1 if this event is implemented and 0 otherwise. This event must be implemented if FEAT_PMUv3p4 is implemented.
|
||||
'''
|
||||
# plt.title("L1D cache miss read \n ARM Performance counter: L1D_CACHE_LMISS_RD \n each Memory-read operation or Memory-write operation that causes a cache \n access to at least the Level 1 data or unified cache. This includes each complete or partial translation table walk that causes an access to memory, including to data or translation table walk caches. \n Kmeans C program with Dimentions size 40")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("L1 Cache misses")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('ll_tlb_40_dimentions.png')
|
||||
358
pyplot/Kmeans/40-Dimentions/TLB-DTLB-walk.py
Normal file
@@ -0,0 +1,358 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array([int(x) for x in """32507
|
||||
4034
|
||||
27922
|
||||
22075
|
||||
45252
|
||||
6514
|
||||
45268
|
||||
20768
|
||||
78216
|
||||
5116
|
||||
4901
|
||||
24579
|
||||
30668
|
||||
4423
|
||||
12543
|
||||
16230
|
||||
20602
|
||||
23792
|
||||
29764
|
||||
35176
|
||||
22257
|
||||
21233
|
||||
22759
|
||||
41562
|
||||
5007
|
||||
40803
|
||||
15581
|
||||
18344
|
||||
4326
|
||||
25407
|
||||
37615
|
||||
25375
|
||||
19009
|
||||
43028
|
||||
31940
|
||||
25065
|
||||
20590
|
||||
3655
|
||||
39584
|
||||
11664
|
||||
16350
|
||||
18779
|
||||
3277
|
||||
5144
|
||||
26088
|
||||
10985
|
||||
25409
|
||||
38962
|
||||
19469
|
||||
11783
|
||||
24724
|
||||
18592
|
||||
31519
|
||||
18800
|
||||
10576
|
||||
33770
|
||||
11064
|
||||
71505
|
||||
8464
|
||||
4462
|
||||
22492
|
||||
33959
|
||||
4642
|
||||
34880
|
||||
4680
|
||||
32584
|
||||
4644
|
||||
16117
|
||||
21607
|
||||
4376
|
||||
4792
|
||||
30989
|
||||
18197
|
||||
13420
|
||||
27542
|
||||
21644
|
||||
22988
|
||||
41102
|
||||
37441
|
||||
34021
|
||||
13875
|
||||
17100
|
||||
43959
|
||||
10988
|
||||
25154
|
||||
32953
|
||||
18680
|
||||
11657
|
||||
37957
|
||||
18279
|
||||
26901
|
||||
36833
|
||||
10165
|
||||
15802
|
||||
23218
|
||||
4811
|
||||
26871
|
||||
22496
|
||||
12986
|
||||
24293
|
||||
16020
|
||||
37425
|
||||
17160
|
||||
5464
|
||||
54857
|
||||
37666
|
||||
30590
|
||||
4896
|
||||
4561
|
||||
17568
|
||||
15857
|
||||
4497
|
||||
33919
|
||||
11669
|
||||
19176
|
||||
53357
|
||||
12422
|
||||
13431
|
||||
21433
|
||||
4551
|
||||
20220
|
||||
11167
|
||||
4747
|
||||
7006
|
||||
24694
|
||||
24494
|
||||
52551
|
||||
11999
|
||||
80094
|
||||
18621
|
||||
9625
|
||||
19697
|
||||
18924
|
||||
5664
|
||||
39953
|
||||
5258
|
||||
9940
|
||||
21864
|
||||
4681
|
||||
60347
|
||||
4316
|
||||
18867
|
||||
17767
|
||||
18939
|
||||
13191
|
||||
15379
|
||||
4516
|
||||
15721
|
||||
19535
|
||||
19272
|
||||
44248
|
||||
18811
|
||||
21077
|
||||
54181
|
||||
29909
|
||||
32954
|
||||
12046
|
||||
17235
|
||||
37583
|
||||
15340""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
xpoints = np.array([(i) for i, x in enumerate(ypoints, 1)])
|
||||
|
||||
ypoints1 = np.array([int(x) for x in """37838
|
||||
4375
|
||||
4755
|
||||
13395
|
||||
4663
|
||||
17351
|
||||
35495
|
||||
41361
|
||||
14851
|
||||
3678
|
||||
9728
|
||||
7058
|
||||
18282
|
||||
34639
|
||||
31071
|
||||
4249
|
||||
20021
|
||||
3460
|
||||
14453
|
||||
12527
|
||||
21730
|
||||
39797
|
||||
40936
|
||||
3952
|
||||
3572
|
||||
35124
|
||||
3157
|
||||
24017
|
||||
17363
|
||||
14283
|
||||
41690
|
||||
3627
|
||||
30967
|
||||
10083
|
||||
17288
|
||||
8446
|
||||
18369
|
||||
12531
|
||||
15990
|
||||
22124
|
||||
63165
|
||||
11521
|
||||
18297
|
||||
30464
|
||||
26297
|
||||
4068
|
||||
5461
|
||||
62879
|
||||
4968
|
||||
25299
|
||||
50562
|
||||
4084
|
||||
4528
|
||||
4962
|
||||
59035
|
||||
4958
|
||||
21144
|
||||
35628
|
||||
4261
|
||||
4349
|
||||
14859
|
||||
36841
|
||||
8263
|
||||
17753
|
||||
12513
|
||||
15457
|
||||
18778
|
||||
4148
|
||||
25284
|
||||
18899
|
||||
28869
|
||||
16736
|
||||
26025
|
||||
7030
|
||||
4598
|
||||
13422
|
||||
14592
|
||||
14660
|
||||
26539
|
||||
23846
|
||||
22503
|
||||
3771
|
||||
8567
|
||||
31149
|
||||
7480
|
||||
19305
|
||||
10491
|
||||
4415
|
||||
20470
|
||||
15658
|
||||
17870
|
||||
11822
|
||||
19760
|
||||
22506
|
||||
17256
|
||||
18958
|
||||
18275
|
||||
26096
|
||||
3780
|
||||
20019
|
||||
44296
|
||||
27396
|
||||
13735
|
||||
24572
|
||||
12058
|
||||
4065
|
||||
13409
|
||||
18858
|
||||
63139
|
||||
41617
|
||||
4256
|
||||
16795
|
||||
69961
|
||||
8029
|
||||
22993
|
||||
82166
|
||||
3994
|
||||
4724
|
||||
5504
|
||||
28454
|
||||
17037
|
||||
29973
|
||||
41238
|
||||
18465
|
||||
9060
|
||||
4665
|
||||
34217
|
||||
5250
|
||||
41130
|
||||
36820
|
||||
16737
|
||||
4086
|
||||
21270
|
||||
55031
|
||||
3988
|
||||
25838
|
||||
26389
|
||||
38865
|
||||
6083
|
||||
23834
|
||||
34979
|
||||
3616
|
||||
15021
|
||||
4614
|
||||
25599
|
||||
18673
|
||||
4572
|
||||
18720
|
||||
4562
|
||||
38451
|
||||
19787
|
||||
32943
|
||||
4457
|
||||
4577
|
||||
10062
|
||||
34287
|
||||
7733
|
||||
21443
|
||||
21917""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
DTLB_WALK
|
||||
The counter counts each access counted by L1D_TLB that causes a
|
||||
refill of a data or unified
|
||||
TLB involving at least one translation table walk access.
|
||||
This includes each complete or partial translation table walk that causes an
|
||||
access to memory, including to data or translation table walk caches.
|
||||
If Armv8.7 is not implemented, it is IMPLEMENTATION DEFINED whether accesses
|
||||
that cause an update of an existing TLB entry involving at least one translation
|
||||
table walk access are counted. If Armv8.7 is implemented, these accesses
|
||||
are counted.
|
||||
'''
|
||||
# plt.title("Data TLB access, read \n ARM Performance counter: DTLB_WALK \n Data TLB access with at least one translation table walk \n This includes each complete or partial translation table walk that causes an access to memory, including to data or translation table walk caches. \n Kmeans C program with Cluster size 40")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("DTLB walks")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('d_tlb_walk_40_dimentions.png')
|
||||
357
pyplot/Kmeans/40-Dimentions/TLB-L1-DATA-ACCESS.py
Normal file
@@ -0,0 +1,357 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array([5271750211,
|
||||
5947977060,
|
||||
6406575235,
|
||||
5511255729,
|
||||
6423429240,
|
||||
5094278723,
|
||||
6242776302,
|
||||
6297848739,
|
||||
4590445845,
|
||||
6764711612,
|
||||
4610372742,
|
||||
5903997396,
|
||||
5747140551,
|
||||
6300303767,
|
||||
6640645385,
|
||||
4818280514,
|
||||
7823467298,
|
||||
5828843492,
|
||||
7619923263,
|
||||
7891459023,
|
||||
7387222066,
|
||||
7941541977,
|
||||
5433577677,
|
||||
7362215737,
|
||||
7053988636,
|
||||
7387626023,
|
||||
6945895832,
|
||||
4915107460,
|
||||
6745811484,
|
||||
7802741433,
|
||||
6808767570,
|
||||
7717542941,
|
||||
5557441777,
|
||||
6274197189,
|
||||
6839290749,
|
||||
6583819269,
|
||||
8175619486,
|
||||
7374930361,
|
||||
7496545906,
|
||||
5787152431,
|
||||
6970388902,
|
||||
7150342762,
|
||||
6374515148,
|
||||
7086240550,
|
||||
6014911926,
|
||||
6805497356,
|
||||
6787839300,
|
||||
6029236409,
|
||||
7045329429,
|
||||
5463327288,
|
||||
7023215119,
|
||||
6305754943,
|
||||
6040079901,
|
||||
7642513816,
|
||||
5399217904,
|
||||
7615536076,
|
||||
6947227611,
|
||||
6886438575,
|
||||
6525913645,
|
||||
5704035737,
|
||||
6001096710,
|
||||
4595121294,
|
||||
3891698114,
|
||||
5754907462,
|
||||
5581736391,
|
||||
8438909738,
|
||||
7281420759,
|
||||
9120364283,
|
||||
8975142455,
|
||||
6194068545,
|
||||
7645451782,
|
||||
6244703959,
|
||||
8436588830,
|
||||
8530553210,
|
||||
7617848374,
|
||||
8172082546,
|
||||
6812387244,
|
||||
8703432529,
|
||||
8613319990,
|
||||
7501293173,
|
||||
8216594940,
|
||||
5673006642,
|
||||
7168602771,
|
||||
7846317702,
|
||||
7094119540,
|
||||
8854752613,
|
||||
5455608081,
|
||||
8407641178,
|
||||
8338729110,
|
||||
8119635911,
|
||||
8981010962,
|
||||
7495479592,
|
||||
8554574662,
|
||||
8404630428,
|
||||
7519304345,
|
||||
7136761544,
|
||||
6528504686,
|
||||
8236643504,
|
||||
6831632676,
|
||||
8347118009,
|
||||
7641263754,
|
||||
5707359038,
|
||||
6748898177,
|
||||
6066310601,
|
||||
6943861727,
|
||||
7098959658,
|
||||
5212148705,
|
||||
6824640874,
|
||||
5583585529,
|
||||
8003156647,
|
||||
6415970122,
|
||||
6830508723,
|
||||
7041516118,
|
||||
6892969782,
|
||||
7126446374,
|
||||
8238572592,
|
||||
6702708346,
|
||||
6612046729,
|
||||
6731145590,
|
||||
7182643495,
|
||||
6166401716,
|
||||
6391553234,
|
||||
6638759846,
|
||||
5539008636,
|
||||
8406967616,
|
||||
7660149216,
|
||||
8431551979,
|
||||
8269144799,
|
||||
7734313131,
|
||||
8403891519,
|
||||
7258535328,
|
||||
7776937659,
|
||||
6064178686,
|
||||
5770876015,
|
||||
6982161319,
|
||||
5235604055,
|
||||
8101527192,
|
||||
6046956898,
|
||||
6827456214,
|
||||
7874652143,
|
||||
5025716700,
|
||||
7506539290,
|
||||
6196558003,
|
||||
6656436732,
|
||||
5956327575,
|
||||
4626891040,
|
||||
6350370528,
|
||||
5249154115,
|
||||
7566366652,
|
||||
7035152421,
|
||||
5894510533,
|
||||
7071341874,
|
||||
6305872895,
|
||||
7188950553,
|
||||
6518432441,
|
||||
5956890819,
|
||||
7441553601,
|
||||
6285032471,
|
||||
6776691911,
|
||||
5916079446,
|
||||
2984166525
|
||||
])
|
||||
|
||||
xpoints = np.array([(i) for i, x in enumerate(ypoints, 1)])
|
||||
|
||||
ypoints1 = np.array([int(x) for x in """7320333725
|
||||
8041544574
|
||||
6359081713
|
||||
7676718410
|
||||
7408541973
|
||||
8549261018
|
||||
6455940864
|
||||
7638044083
|
||||
7852961154
|
||||
8105713414
|
||||
8099296359
|
||||
8588846829
|
||||
9264198897
|
||||
7866569227
|
||||
8241210929
|
||||
8266772980
|
||||
9025896341
|
||||
8543734536
|
||||
8436388827
|
||||
8593700407
|
||||
7449440289
|
||||
8297109440
|
||||
8213614706
|
||||
9250000125
|
||||
7852953217
|
||||
8789498566
|
||||
7365356677
|
||||
7663656239
|
||||
7930037512
|
||||
7141236610
|
||||
7737423168
|
||||
8306296388
|
||||
8693384934
|
||||
7433924991
|
||||
7878827892
|
||||
7671595716
|
||||
7150009037
|
||||
8591898274
|
||||
8167375582
|
||||
8355489369
|
||||
7173398288
|
||||
8066437344
|
||||
6594406377
|
||||
7699310879
|
||||
7502720090
|
||||
7940562130
|
||||
6738407130
|
||||
7831934111
|
||||
7551421487
|
||||
8597892604
|
||||
7251882911
|
||||
7497411167
|
||||
7623185317
|
||||
6601524684
|
||||
8174240923
|
||||
7425424118
|
||||
7689177096
|
||||
5496078729
|
||||
5695648325
|
||||
7096458210
|
||||
4812243000
|
||||
8265423889
|
||||
7406646505
|
||||
8401794675
|
||||
8029187256
|
||||
8262191583
|
||||
8410556911
|
||||
8215142659
|
||||
7977382227
|
||||
8090414614
|
||||
8943953292
|
||||
7822463926
|
||||
7959987169
|
||||
7730265183
|
||||
8736349787
|
||||
8143049809
|
||||
6640249510
|
||||
7530281166
|
||||
6842877170
|
||||
7512789107
|
||||
7638804649
|
||||
7995198730
|
||||
7496218179
|
||||
7181518949
|
||||
8254413848
|
||||
8022381985
|
||||
7361988882
|
||||
7810130859
|
||||
7417215012
|
||||
7872443581
|
||||
7732389294
|
||||
7814055171
|
||||
7463971008
|
||||
8433179161
|
||||
7010361542
|
||||
8758722649
|
||||
7834208169
|
||||
7467025814
|
||||
7909486359
|
||||
7462899259
|
||||
8890074348
|
||||
8072645870
|
||||
7422221759
|
||||
8907995744
|
||||
6612293480
|
||||
7843416231
|
||||
8411079708
|
||||
9525606221
|
||||
6937922478
|
||||
7845436454
|
||||
7864992534
|
||||
7427672637
|
||||
8619142087
|
||||
8731377069
|
||||
8885281498
|
||||
7559808728
|
||||
7173215681
|
||||
7652102219
|
||||
6717276768
|
||||
8244303885
|
||||
7151149289
|
||||
7102114957
|
||||
6526600396
|
||||
7151648008
|
||||
7526924470
|
||||
8040860568
|
||||
8175611289
|
||||
7459798487
|
||||
7145058572
|
||||
6890657989
|
||||
7345908520
|
||||
8924306436
|
||||
8931634035
|
||||
8324005045
|
||||
8599147593
|
||||
8880835677
|
||||
8165157302
|
||||
7460488360
|
||||
8628914421
|
||||
8583302346
|
||||
7934022758
|
||||
7056421549
|
||||
8275846606
|
||||
7009386280
|
||||
7495129707
|
||||
7773552723
|
||||
7645908705
|
||||
8608406256
|
||||
8712832214
|
||||
7664452295
|
||||
8321095578
|
||||
8643168243
|
||||
7250479737
|
||||
7556324607
|
||||
7738815689
|
||||
6796106269
|
||||
7213420720
|
||||
7365304658
|
||||
7297146598""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
# ypoints1 = np.array([1,2])
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
L1D_TLB
|
||||
The counter counts each Memory-read operation or Memory-write operation that causes a TLB
|
||||
access to at least the Level 1 data or unified TLB.
|
||||
Each access to a TLB entry is counted including multiple accesses caused by single instructions
|
||||
such as LDM or STM.
|
||||
'''
|
||||
# plt.title("Level 1 data TLB access, read \n ARM Performance counter: L1D_TLB_RD \n This counter counts each access counted by \n L1D_TLB that is a Memory-read operation. \n Kmeans C program with Cluster size 40")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("L1 DTLB reads")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('l1_tlb_40_dimentions.png')
|
||||
347
pyplot/Kmeans/40-Dimentions/TLB-L2D_TLB.py
Normal file
@@ -0,0 +1,347 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
|
||||
ypoints = np.array([int(x) for x in """66540
|
||||
7859
|
||||
23464
|
||||
43214
|
||||
27505
|
||||
27462
|
||||
46371
|
||||
10104
|
||||
65940
|
||||
26508
|
||||
18169
|
||||
33410
|
||||
35932
|
||||
31967
|
||||
61487
|
||||
22289
|
||||
61131
|
||||
49936
|
||||
8378
|
||||
70970
|
||||
64227
|
||||
45327
|
||||
14493
|
||||
8585
|
||||
34713
|
||||
62427
|
||||
27633
|
||||
49391
|
||||
28682
|
||||
21025
|
||||
30477
|
||||
19946
|
||||
34838
|
||||
53935
|
||||
51581
|
||||
19594
|
||||
17913
|
||||
33452
|
||||
57925
|
||||
78362
|
||||
9176
|
||||
43589
|
||||
57070
|
||||
23447
|
||||
28627
|
||||
17297
|
||||
54966
|
||||
59315
|
||||
52363
|
||||
50624
|
||||
26515
|
||||
31190
|
||||
106412
|
||||
35441
|
||||
10280
|
||||
21075
|
||||
9663
|
||||
78816
|
||||
48329
|
||||
48742
|
||||
40940
|
||||
40585
|
||||
33234
|
||||
71473
|
||||
21832
|
||||
66627
|
||||
18375
|
||||
18306
|
||||
34411
|
||||
56034
|
||||
24142
|
||||
74324
|
||||
34921
|
||||
10427
|
||||
65288
|
||||
17961
|
||||
30433
|
||||
17538
|
||||
33052
|
||||
63611
|
||||
15918
|
||||
8983
|
||||
47290
|
||||
30154
|
||||
68913
|
||||
30144
|
||||
68603
|
||||
16772
|
||||
76516
|
||||
31663
|
||||
50528
|
||||
36797
|
||||
27584
|
||||
74728
|
||||
9514
|
||||
16252
|
||||
34017
|
||||
39159
|
||||
73261
|
||||
34238
|
||||
9979
|
||||
100145
|
||||
30276
|
||||
32994
|
||||
26959
|
||||
37082
|
||||
82385
|
||||
34030
|
||||
65503
|
||||
24471
|
||||
22303
|
||||
9260
|
||||
24329
|
||||
69294
|
||||
34741
|
||||
23791
|
||||
43832
|
||||
50302
|
||||
98996
|
||||
45543
|
||||
35170
|
||||
9195
|
||||
9658
|
||||
63685
|
||||
21802
|
||||
39287
|
||||
35287
|
||||
8836
|
||||
113920
|
||||
38764
|
||||
23417
|
||||
41543
|
||||
11622
|
||||
45682
|
||||
57685
|
||||
53500
|
||||
13722
|
||||
11203
|
||||
22599
|
||||
92580
|
||||
40797
|
||||
56990
|
||||
81024
|
||||
9030
|
||||
45653
|
||||
65413
|
||||
17266
|
||||
59900
|
||||
33502
|
||||
10976
|
||||
28385
|
||||
33838
|
||||
61241
|
||||
29094
|
||||
36072
|
||||
146101
|
||||
8552
|
||||
30128
|
||||
51724
|
||||
24090""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
xpoints = np.array([(i) for i, x in enumerate(ypoints, 1)])
|
||||
|
||||
ypoints1 = np.array([int(x) for x in """147309
|
||||
24207
|
||||
72608
|
||||
53185
|
||||
29916
|
||||
62288
|
||||
19733
|
||||
20551
|
||||
15416
|
||||
33266
|
||||
38374
|
||||
37710
|
||||
76787
|
||||
38460
|
||||
35339
|
||||
15569
|
||||
43172
|
||||
40743
|
||||
35956
|
||||
52172
|
||||
17231
|
||||
32107
|
||||
66245
|
||||
78219
|
||||
57454
|
||||
37971
|
||||
21077
|
||||
38089
|
||||
16171
|
||||
26842
|
||||
70623
|
||||
61517
|
||||
43946
|
||||
16101
|
||||
64700
|
||||
15876
|
||||
18604
|
||||
52025
|
||||
32854
|
||||
48066
|
||||
110412
|
||||
74894
|
||||
15982
|
||||
16951
|
||||
30104
|
||||
67263
|
||||
97568
|
||||
71199
|
||||
47570
|
||||
60400
|
||||
119246
|
||||
46025
|
||||
39649
|
||||
61263
|
||||
31674
|
||||
18139
|
||||
52567
|
||||
106665
|
||||
28508
|
||||
50885
|
||||
30868
|
||||
64452
|
||||
21987
|
||||
104550
|
||||
60096
|
||||
35098
|
||||
27626
|
||||
26791
|
||||
44735
|
||||
24076
|
||||
53037
|
||||
18897
|
||||
49820
|
||||
44744
|
||||
46927
|
||||
58569
|
||||
17651
|
||||
45036
|
||||
55358
|
||||
31643
|
||||
15816
|
||||
75636
|
||||
62402
|
||||
17341
|
||||
71459
|
||||
41987
|
||||
16640
|
||||
15786
|
||||
79108
|
||||
60482
|
||||
35872
|
||||
21016
|
||||
38518
|
||||
17325
|
||||
16738
|
||||
84271
|
||||
28477
|
||||
52976
|
||||
40236
|
||||
51622
|
||||
19197
|
||||
15498
|
||||
38114
|
||||
34553
|
||||
83946
|
||||
108452
|
||||
44795
|
||||
39454
|
||||
49442
|
||||
22963
|
||||
72816
|
||||
64652
|
||||
74099
|
||||
22675
|
||||
60850
|
||||
76929
|
||||
50585
|
||||
61838
|
||||
41130
|
||||
45360
|
||||
17933
|
||||
70220
|
||||
87695
|
||||
19565
|
||||
64806
|
||||
78487
|
||||
21187
|
||||
56748
|
||||
93777
|
||||
53159
|
||||
19220
|
||||
33799
|
||||
19743
|
||||
31416
|
||||
37750
|
||||
67563
|
||||
53070
|
||||
18014
|
||||
19133
|
||||
39304
|
||||
41509
|
||||
16661
|
||||
81493
|
||||
53422
|
||||
17376
|
||||
15742
|
||||
56450
|
||||
49720
|
||||
34734
|
||||
47112
|
||||
16915
|
||||
17586
|
||||
16895
|
||||
79737
|
||||
48293
|
||||
35941
|
||||
18742
|
||||
54320
|
||||
33438""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
# plt.title("Level 2 data TLB acces, read \n ARM Performance counter: L2D_TLB \n The counter counts each Memory-read operation or Memory-write operation that causes a TLB access to at least the Level 2 data or unified TLB. \n Kmeans C program with Cluster size 40")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("L2 DTLB reads")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('l2_tlb_40_dimentions.png')
|
||||
BIN
pyplot/Kmeans/40-Dimentions/d_tlb_walk_40_dimentions.png
Normal file
|
After Width: | Height: | Size: 93 KiB |
BIN
pyplot/Kmeans/40-Dimentions/l1_tlb_40_dimentions.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
pyplot/Kmeans/40-Dimentions/l2_tlb_40_dimentions.png
Normal file
|
After Width: | Height: | Size: 91 KiB |
BIN
pyplot/Kmeans/40-Dimentions/ll_tlb_40_dimentions.png
Normal file
|
After Width: | Height: | Size: 83 KiB |
117
pyplot/Kmeans/6-Dimentions/LL_CACHE_MISS.py
Normal file
@@ -0,0 +1,117 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array(np.array([int(x) for x in """742051
|
||||
559499
|
||||
372615
|
||||
383619
|
||||
428808
|
||||
336756
|
||||
518580
|
||||
390112
|
||||
375579
|
||||
421849
|
||||
381810
|
||||
384743
|
||||
469525
|
||||
421909
|
||||
487489
|
||||
337821
|
||||
469539
|
||||
366665
|
||||
469249
|
||||
509121
|
||||
430155
|
||||
375011
|
||||
462737
|
||||
530009
|
||||
481996
|
||||
427822
|
||||
356143
|
||||
528752
|
||||
542248
|
||||
493358
|
||||
479450
|
||||
425282
|
||||
517723
|
||||
426863
|
||||
540465
|
||||
466203
|
||||
456952
|
||||
499337
|
||||
538226""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
xpoints = np.array([(i) for i, x in enumerate(ypoints, 1)])
|
||||
|
||||
ypoints1 = np.array(np.array([int(x) for x in """736765
|
||||
531488
|
||||
423974
|
||||
374492
|
||||
554088
|
||||
388215
|
||||
374805
|
||||
519748
|
||||
474860
|
||||
534621
|
||||
535391
|
||||
631809
|
||||
496852
|
||||
509826
|
||||
519247
|
||||
471033
|
||||
508710
|
||||
525277
|
||||
501897
|
||||
394173
|
||||
493662
|
||||
375646
|
||||
431544
|
||||
382177
|
||||
630827
|
||||
452712
|
||||
556464
|
||||
510118
|
||||
534303
|
||||
550329
|
||||
574236
|
||||
479424
|
||||
575782
|
||||
428647
|
||||
508028
|
||||
475290
|
||||
491714
|
||||
462188
|
||||
294159""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
L1D_CACHE_LMISS_RD
|
||||
The counter counts each Memory-read operation to the Level 1 data or unified cache counted by L1D_CACHE that incurs additional latency because it returns data from outside of the Level 1 data or unified cache of this PE.
|
||||
The event indicates to software that the access missed in the Level 1 data or unified cache and might have a significant performance impact due to the additional latency compared to the latency of an access that hits in the Level 1 data or unified cache.
|
||||
The counter does not count:
|
||||
• Accesses where the additional latency is unlikely to be significantly performance-impacting. For example, if the access hits in another cache in the same local cluster, and the additional latency is small when compared to a miss in all Level 1 caches that the access looks up in and results in an access being made to a Level 2 cache or elsewhere beyond the Level 1 data or unified cache.
|
||||
• A miss that does not cause a new cache refill but is satisfied from a previous miss.
|
||||
An implementation is not required to measure the latency, nor to track the access to determine whether the additional latency caused a performance impact. An implementation can extend the definition of this event with additional scenarios where an access might have a significant performance impact due to additional latency for the access.
|
||||
It is IMPLEMENTATION DEFINED whether accesses that result from cache maintenance operations are counted.
|
||||
If the cache is shared and the Effective value of PMEVTYPER<n>_EL0.MT for the counter is 0, then the counter counts only events Attributable to the PE counting the event. For a multithreaded processor implementation, if the cache is shared by PEs other than the PEs in the multithreaded processor and the Effective value of PMEVTYPER<n>_EL0.MT for the counter is 1, then the counter counts only events Attributable to PEs in the multithreaded processor. In all other cases, it is IMPLEMENTATION DEFINED whether only events Attributable to the PE counting the event or all events are counted, and might depend on the Effective value of PMEVTYPER<n>_EL1.MT.
|
||||
PMCEID1_EL0[25] reads as 1 if this event is implemented and 0 otherwise. This event must be implemented if FEAT_PMUv3p4 is implemented.
|
||||
'''
|
||||
# plt.title("L1D cache miss read \n ARM Performance counter: L1D_CACHE_LMISS_RD \n each Memory-read operation or Memory-write operation that causes a cache \n access to at least the Level 1 data or unified cache. This includes each complete or partial translation table walk that causes an access to memory, including to data or translation table walk caches. \n Kmeans C program with Cluster size 6")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("DTLB walks")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('ll_kmeans_6_dimentions.png')
|
||||
118
pyplot/Kmeans/6-Dimentions/TLB-DTLB-walk.py
Normal file
@@ -0,0 +1,118 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array([12140,
|
||||
7054,
|
||||
3621,
|
||||
5391,
|
||||
6391,
|
||||
6235,
|
||||
4067,
|
||||
4433,
|
||||
5248,
|
||||
3321,
|
||||
4790,
|
||||
4832,
|
||||
5783,
|
||||
3709,
|
||||
6746,
|
||||
4699,
|
||||
4452,
|
||||
6665,
|
||||
3209,
|
||||
7217,
|
||||
3974,
|
||||
5167,
|
||||
6708,
|
||||
4311,
|
||||
5803,
|
||||
5319,
|
||||
5280,
|
||||
6898,
|
||||
3960,
|
||||
5857,
|
||||
3792,
|
||||
6350,
|
||||
5911,
|
||||
4862,
|
||||
5997,
|
||||
7540,
|
||||
4661,
|
||||
6060,
|
||||
4739
|
||||
])
|
||||
|
||||
xpoints = np.array([(i) for i, x in enumerate(ypoints, 1)])
|
||||
|
||||
ypoints1 = np.array([12300,
|
||||
8615,
|
||||
6314,
|
||||
6995,
|
||||
4796,
|
||||
10032,
|
||||
4414,
|
||||
8960,
|
||||
7265,
|
||||
8670,
|
||||
5075,
|
||||
8384,
|
||||
5986,
|
||||
8500,
|
||||
7639,
|
||||
8565,
|
||||
7414,
|
||||
5646,
|
||||
9956,
|
||||
4638,
|
||||
8766,
|
||||
5357,
|
||||
13762,
|
||||
6227,
|
||||
12425,
|
||||
7081,
|
||||
11306,
|
||||
8253,
|
||||
8411,
|
||||
6267,
|
||||
15571,
|
||||
5383,
|
||||
11586,
|
||||
8497,
|
||||
11189,
|
||||
7123,
|
||||
7342,
|
||||
6345,
|
||||
5933])
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
DTLB_WALK
|
||||
The counter counts each access counted by L1D_TLB that causes a
|
||||
refill of a data or unified
|
||||
TLB involving at least one translation table walk access.
|
||||
This includes each complete or partial translation table walk that causes an
|
||||
access to memory, including to data or translation table walk caches.
|
||||
If Armv8.7 is not implemented, it is IMPLEMENTATION DEFINED whether accesses
|
||||
that cause an update of an existing TLB entry involving at least one translation
|
||||
table walk access are counted. If Armv8.7 is implemented, these accesses
|
||||
are counted.
|
||||
'''
|
||||
# plt.title("Data TLB access, read \n ARM Performance counter: DTLB_WALK \n Data TLB access with at least one translation table walk \n This includes each complete or partial translation table walk that causes an access to memory, including to data or translation table walk caches. \n Kmeans C program with Cluster size 6")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("DTLB walks")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('dtlb_walk_kmeans_6_dimentions.png')
|
||||
113
pyplot/Kmeans/6-Dimentions/TLB-L1-DATA-ACCESS.py
Normal file
@@ -0,0 +1,113 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array([2472219435,
|
||||
3473628174,
|
||||
3146805964,
|
||||
2747609863,
|
||||
3624063096,
|
||||
2299770299,
|
||||
2731333935,
|
||||
2500798504,
|
||||
2279879638,
|
||||
3989040226,
|
||||
2595662999,
|
||||
3715651239,
|
||||
3293638078,
|
||||
2723808934,
|
||||
4183888040,
|
||||
2437497235,
|
||||
3262957061,
|
||||
3260647309,
|
||||
2145129129,
|
||||
3874909746,
|
||||
2471935689,
|
||||
3143457211,
|
||||
3450920659,
|
||||
2570835020,
|
||||
4197209649,
|
||||
3325832132,
|
||||
3041911087,
|
||||
3848617519,
|
||||
1973739208,
|
||||
3773139796,
|
||||
2737410930,
|
||||
2907858299,
|
||||
3813970823,
|
||||
2856501924,
|
||||
3505228599,
|
||||
2432178891,
|
||||
2854895470,
|
||||
3602152695,
|
||||
2576232334
|
||||
])
|
||||
|
||||
xpoints = np.array([(i) for i, x in enumerate(ypoints, 1)])
|
||||
|
||||
ypoints1 = np.array([3512147188,
|
||||
2931698338,
|
||||
3130637973,
|
||||
2799013235,
|
||||
3256184323,
|
||||
2992132432,
|
||||
3041359022,
|
||||
3094813437,
|
||||
3028071885,
|
||||
3380696386,
|
||||
3018331410,
|
||||
2899603552,
|
||||
3264907899,
|
||||
3002822837,
|
||||
3045671887,
|
||||
3119204499,
|
||||
2953573342,
|
||||
2963606839,
|
||||
2855193865,
|
||||
3043260399,
|
||||
2972252469,
|
||||
2503069946,
|
||||
2958386657,
|
||||
3033810534,
|
||||
3007362327,
|
||||
3026500873,
|
||||
3159826130,
|
||||
2504328570,
|
||||
4058464445,
|
||||
3218889301,
|
||||
3597912212,
|
||||
4181723542,
|
||||
3749432601,
|
||||
3654586898,
|
||||
3557679884,
|
||||
3322970044,
|
||||
3630597266,
|
||||
3130958213,
|
||||
1019981557])
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
L1D_TLB
|
||||
The counter counts each Memory-read operation or Memory-write operation that causes a TLB
|
||||
access to at least the Level 1 data or unified TLB.
|
||||
Each access to a TLB entry is counted including multiple accesses caused by single instructions
|
||||
such as LDM or STM.
|
||||
'''
|
||||
# plt.title("Level 1 data TLB access, read \n ARM Performance counter: L1D_TLB_RD \n This counter counts each access counted by \n L1D_TLB that is a Memory-read operation. \n Kmeans C program with Cluster size 6")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("L1 DTLB reads")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('l1_tlb_6_dimentions.png')
|
||||
114
pyplot/Kmeans/6-Dimentions/TLB-L2D_TLB.py
Normal file
@@ -0,0 +1,114 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
|
||||
ypoints = np.array([72589,
|
||||
169120,
|
||||
35199,
|
||||
71459,
|
||||
55242,
|
||||
83325,
|
||||
144975,
|
||||
55231,
|
||||
73573,
|
||||
103593,
|
||||
122123,
|
||||
88845,
|
||||
99314,
|
||||
32081,
|
||||
130112,
|
||||
117455,
|
||||
73731,
|
||||
90279,
|
||||
93552,
|
||||
136261,
|
||||
35079,
|
||||
81254,
|
||||
93388,
|
||||
79594,
|
||||
173510,
|
||||
51158,
|
||||
140234,
|
||||
64106,
|
||||
45336,
|
||||
178182,
|
||||
38224,
|
||||
101736,
|
||||
104410,
|
||||
57382,
|
||||
141596,
|
||||
59233,
|
||||
84714,
|
||||
74438,
|
||||
55860])
|
||||
|
||||
xpoints = np.array([(i) for i, x in enumerate(ypoints, 1)])
|
||||
|
||||
ypoints1 = np.array([132941,
|
||||
85450,
|
||||
47978,
|
||||
100585,
|
||||
137429,
|
||||
65503,
|
||||
46820,
|
||||
57147,
|
||||
94444,
|
||||
112309,
|
||||
62289,
|
||||
91219,
|
||||
34585,
|
||||
89262,
|
||||
68500,
|
||||
77858,
|
||||
41711,
|
||||
53555,
|
||||
43719,
|
||||
122750,
|
||||
57234,
|
||||
139151,
|
||||
58964,
|
||||
85669,
|
||||
50914,
|
||||
75187,
|
||||
80292,
|
||||
126473,
|
||||
102653,
|
||||
104636,
|
||||
123366,
|
||||
79591,
|
||||
63819,
|
||||
55965,
|
||||
106456,
|
||||
34263,
|
||||
113263,
|
||||
71477])
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
DTLB_WALK
|
||||
The counter counts each Memory-read operation or Memory-write operation that causes a
|
||||
TLB access to at least the Level 2 data or unified TLB.
|
||||
Each access to a TLB entry is counted including refills
|
||||
of Level 1 TLBs.
|
||||
The counter does not count the access if the access i
|
||||
s due to a TLB maintenance instruction.
|
||||
'''
|
||||
# plt.title("Level 2 data TLB acces, read \n ARM Performance counter: L2D_TLB \n The counter counts each Memory-read operation or Memory-write operation that causes a TLB access to at least the Level 2 data or unified TLB. \n Kmeans C program with Cluster size 6")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("L2 DTLB reads")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('l2_tlb_6_dimentions.png')
|
||||
BIN
pyplot/Kmeans/6-Dimentions/dtlb_walk_kmeans_6_dimentions.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
pyplot/Kmeans/6-Dimentions/l1_tlb_6_dimentions.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
pyplot/Kmeans/6-Dimentions/l2_tlb_6_dimentions.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
pyplot/Kmeans/6-Dimentions/ll_kmeans_6_dimentions.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
0
pyplot/Kmeans/Sum-Graph/12-tlb.py
Normal file
102
pyplot/Kmeans/Sum-Graph/Histogram/l1-miss.py
Normal file
@@ -0,0 +1,102 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
dim3_physically_contigous = np.array([2100870])
|
||||
|
||||
dmin_3_physically_contigous = sum(dim3_physically_contigous)
|
||||
|
||||
dim3_regular = np.array([19384360])
|
||||
|
||||
dmin_3_regular = sum(dim3_regular)
|
||||
|
||||
dim6_contigous = np.array(np.array([int(x) for x in """7409968
|
||||
5549675""".replace(' ',',').replace('\n','').split(",")]))
|
||||
dim_6_contigous = sum(dim6_contigous)
|
||||
|
||||
print(dim_6_contigous)
|
||||
|
||||
dim6_regular = np.array(np.array([int(x) for x in """3946380
|
||||
3530306""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
dim_6_regular = sum(dim6_regular)
|
||||
|
||||
dim40_contigous = np.array(np.array([int(x) for x in """5527931
|
||||
8487180
|
||||
8358903
|
||||
8502471
|
||||
9044249
|
||||
4808340""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
dim_40_contigous = sum(dim40_contigous)
|
||||
|
||||
dim40_regular = np.array(np.array([int(x) for x in """4215408
|
||||
4561976
|
||||
4696311
|
||||
4662084
|
||||
4618990
|
||||
2799270""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
dim_40_regular = sum(dim40_regular)
|
||||
|
||||
# dimentions = ("3-dementions", "6-dementions", "40-dementions")
|
||||
# comparitors = {
|
||||
# 'FAT-Pointer based range address': (dmin_3_physically_contigous, dim_6_contigous, dim_40_contigous),
|
||||
# 'System Allocator': (dmin_3_regular, dim_6_regular, dim_40_regular),
|
||||
# }
|
||||
|
||||
# x = np.arange(len(dimentions)) # the label locations
|
||||
# width = 0.25 # the width of the bars
|
||||
# multiplier = 0
|
||||
|
||||
# fig, ax = plt.subplots(layout='constrained')
|
||||
|
||||
# for attribute, measurement in comparitors.items():
|
||||
# offset = width * multiplier
|
||||
# rects = ax.bar(x + offset, measurement, width, label=attribute)
|
||||
# ax.bar_label(rects, padding=3)
|
||||
# multiplier += 1
|
||||
|
||||
# # Add some text for labels, title and custom x-axis tick labels, etc.
|
||||
# ax.set_ylabel('DTLB L1 reads')
|
||||
# ax.set_title('L1D_TLB')
|
||||
# ax.set_xticks(x + width, dimentions)
|
||||
# ax.legend(loc='upper left', ncols=2)
|
||||
# ax.set_ylim(0, 250)
|
||||
|
||||
# plt.show()
|
||||
|
||||
# Sample data
|
||||
categories = ['Size Small', 'Size Medium', 'Size Large']
|
||||
group_1 = [dmin_3_physically_contigous, dim_6_contigous, dim_40_contigous]
|
||||
group_2 = [dmin_3_regular, dim_6_regular, dim_40_regular]
|
||||
|
||||
# Number of categories
|
||||
n = len(categories)
|
||||
|
||||
# Create a bar width
|
||||
bar_width = 0.25
|
||||
|
||||
# Create an array with the positions of the bars on the x-axis
|
||||
r1 = np.arange(n)
|
||||
r2 = [x + bar_width for x in r1]
|
||||
# r3 = [x + bar_width for x in r2]
|
||||
|
||||
# Create the grouped bar graph
|
||||
plt.bar(r1, group_1, color='b', width=bar_width, edgecolor='grey', label='FAT-Pointer based range based addresses')
|
||||
plt.bar(r2, group_2, color='g', width=bar_width, edgecolor='grey', label='System memory allocator')
|
||||
# plt.bar(r3, group_3, color='r', width=bar_width, edgecolor='grey', label='Group 3')
|
||||
|
||||
# Add xticks on the middle of the grouped bars
|
||||
plt.xlabel('Size of Histogram COZ', fontweight='bold')
|
||||
plt.xticks([r + bar_width for r in range(n)], categories)
|
||||
|
||||
# Add labels and title
|
||||
plt.ylabel('L1 cache miss', fontweight='bold')
|
||||
plt.title('Sum of L1 cache misses')
|
||||
|
||||
# Add a legend
|
||||
plt.legend()
|
||||
|
||||
# Show the plot
|
||||
# plt.show()
|
||||
plt.savefig('l1-miss-Histogram.png')
|
||||
101
pyplot/Kmeans/Sum-Graph/Histogram/l1-tlb.py
Normal file
@@ -0,0 +1,101 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
dim3_physically_contigous = ypoints = np.array([947507000])
|
||||
|
||||
dmin_3_physically_contigous = sum(dim3_physically_contigous)
|
||||
|
||||
dim3_regular = ypoints = np.array([771906538])
|
||||
|
||||
dmin_3_regular = sum(dim3_regular)
|
||||
|
||||
dim6_contigous = np.array([int(x) for x in """2031641198
|
||||
1792581571""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_6_contigous = sum(dim6_contigous)
|
||||
|
||||
dim6_regular = np.array([int(x) for x in """2041386981
|
||||
2064066636""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_6_regular = sum(dim6_regular)
|
||||
|
||||
dim40_contigous = np.array([int(x) for x in """2470621494
|
||||
2375100932
|
||||
2670296613
|
||||
2645401007
|
||||
2876843895
|
||||
1166193957""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_40_contigous = sum(dim40_contigous)
|
||||
|
||||
dim40_regular = np.array([int(x) for x in """2273131353
|
||||
2561823604
|
||||
2693697356
|
||||
2606093836
|
||||
2631231896
|
||||
1161666024""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_40_regular = sum(dim40_regular)
|
||||
|
||||
# dimentions = ("3-dementions", "6-dementions", "40-dementions")
|
||||
# comparitors = {
|
||||
# 'FAT-Pointer based range address': (dmin_3_physically_contigous, dim_6_contigous, dim_40_contigous),
|
||||
# 'System Allocator': (dmin_3_regular, dim_6_regular, dim_40_regular),
|
||||
# }
|
||||
|
||||
# x = np.arange(len(dimentions)) # the label locations
|
||||
# width = 0.25 # the width of the bars
|
||||
# multiplier = 0
|
||||
|
||||
# fig, ax = plt.subplots(layout='constrained')
|
||||
|
||||
# for attribute, measurement in comparitors.items():
|
||||
# offset = width * multiplier
|
||||
# rects = ax.bar(x + offset, measurement, width, label=attribute)
|
||||
# ax.bar_label(rects, padding=3)
|
||||
# multiplier += 1
|
||||
|
||||
# # Add some text for labels, title and custom x-axis tick labels, etc.
|
||||
# ax.set_ylabel('DTLB L1 reads')
|
||||
# ax.set_title('L1D_TLB')
|
||||
# ax.set_xticks(x + width, dimentions)
|
||||
# ax.legend(loc='upper left', ncols=2)
|
||||
# ax.set_ylim(0, 250)
|
||||
|
||||
# plt.show()
|
||||
|
||||
# Sample data
|
||||
categories = ['Size Small', 'Size Medium', 'Size Large']
|
||||
group_1 = [dmin_3_physically_contigous, dim_6_contigous, dim_40_contigous]
|
||||
group_2 = [dmin_3_regular, dim_6_regular, dim_40_regular]
|
||||
|
||||
# Number of categories
|
||||
n = len(categories)
|
||||
|
||||
# Create a bar width
|
||||
bar_width = 0.25
|
||||
|
||||
# Create an array with the positions of the bars on the x-axis
|
||||
r1 = np.arange(n)
|
||||
r2 = [x + bar_width for x in r1]
|
||||
# r3 = [x + bar_width for x in r2]
|
||||
|
||||
# Create the grouped bar graph
|
||||
plt.bar(r1, group_1, color='b', width=bar_width, edgecolor='grey', label='FAT-Pointer based range based addresses')
|
||||
plt.bar(r2, group_2, color='g', width=bar_width, edgecolor='grey', label='System memory allocator')
|
||||
# plt.bar(r3, group_3, color='r', width=bar_width, edgecolor='grey', label='Group 3')
|
||||
|
||||
# Add xticks on the middle of the grouped bars
|
||||
plt.xlabel('Size of Histogram COZ', fontweight='bold')
|
||||
plt.xticks([r + bar_width for r in range(n)], categories)
|
||||
|
||||
# Add labels and title
|
||||
plt.ylabel('DTLB L1 reads', fontweight='bold')
|
||||
plt.title('Sum of DTLB L1 reads')
|
||||
|
||||
# Add a legend
|
||||
plt.legend()
|
||||
|
||||
# Show the plot
|
||||
# plt.show()
|
||||
plt.savefig('l1-tlb-Histogram.png')
|
||||
101
pyplot/Kmeans/Sum-Graph/Histogram/l2-tlb.py
Normal file
@@ -0,0 +1,101 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
dim3_physically_contigous = np.array([64140])
|
||||
|
||||
dmin_3_physically_contigous = sum(dim3_physically_contigous)
|
||||
|
||||
dim3_regular = np.array([46518])
|
||||
|
||||
dmin_3_regular = sum(dim3_regular)
|
||||
|
||||
dim6_contigous = np.array([int(x) for x in """159185
|
||||
95485""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_6_contigous = sum(dim6_contigous)
|
||||
|
||||
dim6_regular = np.array([int(x) for x in """137015
|
||||
89117""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_6_regular = sum(dim6_regular)
|
||||
|
||||
dim40_contigous = np.array([int(x) for x in """140262
|
||||
156781
|
||||
156217
|
||||
155686
|
||||
139859
|
||||
80438""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_40_contigous = sum(dim40_contigous)
|
||||
|
||||
dim40_regular = np.array([int(x) for x in """121530
|
||||
144628
|
||||
154478
|
||||
143992
|
||||
148316
|
||||
86682""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_40_regular = sum(dim40_regular)
|
||||
|
||||
# dimentions = ("3-dementions", "6-dementions", "40-dementions")
|
||||
# comparitors = {
|
||||
# 'FAT-Pointer based range address': (dmin_3_physically_contigous, dim_6_contigous, dim_40_contigous),
|
||||
# 'System Allocator': (dmin_3_regular, dim_6_regular, dim_40_regular),
|
||||
# }
|
||||
|
||||
# x = np.arange(len(dimentions)) # the label locations
|
||||
# width = 0.25 # the width of the bars
|
||||
# multiplier = 0
|
||||
|
||||
# fig, ax = plt.subplots(layout='constrained')
|
||||
|
||||
# for attribute, measurement in comparitors.items():
|
||||
# offset = width * multiplier
|
||||
# rects = ax.bar(x + offset, measurement, width, label=attribute)
|
||||
# ax.bar_label(rects, padding=3)
|
||||
# multiplier += 1
|
||||
|
||||
# # Add some text for labels, title and custom x-axis tick labels, etc.
|
||||
# ax.set_ylabel('DTLB L1 reads')
|
||||
# ax.set_title('L1D_TLB')
|
||||
# ax.set_xticks(x + width, dimentions)
|
||||
# ax.legend(loc='upper left', ncols=2)
|
||||
# ax.set_ylim(0, 250)
|
||||
|
||||
# plt.show()
|
||||
|
||||
# Sample data
|
||||
categories = ['Size Small', 'Size Medium', 'Size Large']
|
||||
group_1 = [dmin_3_physically_contigous, dim_6_contigous, dim_40_contigous]
|
||||
group_2 = [dmin_3_regular, dim_6_regular, dim_40_regular]
|
||||
|
||||
# Number of categories
|
||||
n = len(categories)
|
||||
|
||||
# Create a bar width
|
||||
bar_width = 0.25
|
||||
|
||||
# Create an array with the positions of the bars on the x-axis
|
||||
r1 = np.arange(n)
|
||||
r2 = [x + bar_width for x in r1]
|
||||
# r3 = [x + bar_width for x in r2]
|
||||
|
||||
# Create the grouped bar graph
|
||||
plt.bar(r1, group_1, color='b', width=bar_width, edgecolor='grey', label='FAT-Pointer based range based addresses')
|
||||
plt.bar(r2, group_2, color='g', width=bar_width, edgecolor='grey', label='System memory allocator')
|
||||
# plt.bar(r3, group_3, color='r', width=bar_width, edgecolor='grey', label='Group 3')
|
||||
|
||||
# Add xticks on the middle of the grouped bars
|
||||
plt.xlabel('Size of Histogram COZ', fontweight='bold')
|
||||
plt.xticks([r + bar_width for r in range(n)], categories)
|
||||
|
||||
# Add labels and title
|
||||
plt.ylabel('DTLB L2 reads', fontweight='bold')
|
||||
plt.title('Sum of DTLB L2 reads')
|
||||
|
||||
# Add a legend
|
||||
plt.legend()
|
||||
|
||||
# Show the plot
|
||||
# plt.show()
|
||||
plt.savefig('l2-tlb-Histogram.png')
|
||||
101
pyplot/Kmeans/Sum-Graph/Histogram/tlb-walk.py
Normal file
@@ -0,0 +1,101 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
dim3_physically_contigous = np.array([18523])
|
||||
|
||||
dmin_3_physically_contigous = sum(dim3_physically_contigous)
|
||||
|
||||
dim3_regular = np.array([16667])
|
||||
|
||||
dmin_3_regular = sum(dim3_regular)
|
||||
|
||||
dim6_contigous = np.array([int(x) for x in """60650
|
||||
38635""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_6_contigous = sum(dim6_contigous)
|
||||
|
||||
dim6_regular = np.array([int(x) for x in """41348
|
||||
39676""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_6_regular = sum(dim6_regular)
|
||||
|
||||
dim40_contigous = np.array([int(x) for x in """61346
|
||||
61955
|
||||
64896
|
||||
64751
|
||||
64359
|
||||
24896""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_40_contigous = sum(dim40_contigous)
|
||||
|
||||
dim40_regular = np.array([int(x) for x in """48953
|
||||
74277
|
||||
52782
|
||||
64321
|
||||
64184
|
||||
36170""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_40_regular = sum(dim40_regular)
|
||||
|
||||
# dimentions = ("3-dementions", "6-dementions", "40-dementions")
|
||||
# comparitors = {
|
||||
# 'FAT-Pointer based range address': (dmin_3_physically_contigous, dim_6_contigous, dim_40_contigous),
|
||||
# 'System Allocator': (dmin_3_regular, dim_6_regular, dim_40_regular),
|
||||
# }
|
||||
|
||||
# x = np.arange(len(dimentions)) # the label locations
|
||||
# width = 0.25 # the width of the bars
|
||||
# multiplier = 0
|
||||
|
||||
# fig, ax = plt.subplots(layout='constrained')
|
||||
|
||||
# for attribute, measurement in comparitors.items():
|
||||
# offset = width * multiplier
|
||||
# rects = ax.bar(x + offset, measurement, width, label=attribute)
|
||||
# ax.bar_label(rects, padding=3)
|
||||
# multiplier += 1
|
||||
|
||||
# # Add some text for labels, title and custom x-axis tick labels, etc.
|
||||
# ax.set_ylabel('DTLB L1 reads')
|
||||
# ax.set_title('L1D_TLB')
|
||||
# ax.set_xticks(x + width, dimentions)
|
||||
# ax.legend(loc='upper left', ncols=2)
|
||||
# ax.set_ylim(0, 250)
|
||||
|
||||
# plt.show()
|
||||
|
||||
# Sample data
|
||||
categories = ['Size Small', 'Size Medium', 'Size Large']
|
||||
group_1 = [dmin_3_physically_contigous, dim_6_contigous, dim_40_contigous]
|
||||
group_2 = [dmin_3_regular, dim_6_regular, dim_40_regular]
|
||||
|
||||
# Number of categories
|
||||
n = len(categories)
|
||||
|
||||
# Create a bar width
|
||||
bar_width = 0.25
|
||||
|
||||
# Create an array with the positions of the bars on the x-axis
|
||||
r1 = np.arange(n)
|
||||
r2 = [x + bar_width for x in r1]
|
||||
# r3 = [x + bar_width for x in r2]
|
||||
|
||||
# Create the grouped bar graph
|
||||
plt.bar(r1, group_1, color='b', width=bar_width, edgecolor='grey', label='FAT-Pointer based range based addresses')
|
||||
plt.bar(r2, group_2, color='g', width=bar_width, edgecolor='grey', label='System memory allocator')
|
||||
# plt.bar(r3, group_3, color='r', width=bar_width, edgecolor='grey', label='Group 3')
|
||||
|
||||
# Add xticks on the middle of the grouped bars
|
||||
plt.xlabel('Size of Histogram COZ', fontweight='bold')
|
||||
plt.xticks([r + bar_width for r in range(n)], categories)
|
||||
|
||||
# Add labels and title
|
||||
plt.ylabel('DTLB walks', fontweight='bold')
|
||||
plt.title('Sum of DTLB walks')
|
||||
|
||||
# Add a legend
|
||||
plt.legend()
|
||||
|
||||
# Show the plot
|
||||
# plt.show()
|
||||
plt.savefig('tlb-walk-Histogram.png')
|
||||
517
pyplot/Kmeans/Sum-Graph/Kmeans/l1-miss.py
Normal file
@@ -0,0 +1,517 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
dim3_physically_contigous = np.array(np.array([int(x) for x in """836772
|
||||
495429
|
||||
446419
|
||||
366613
|
||||
397234
|
||||
505776
|
||||
356928
|
||||
449455
|
||||
480582
|
||||
427964
|
||||
400058
|
||||
420493
|
||||
452870
|
||||
499538
|
||||
419145
|
||||
443761
|
||||
417189
|
||||
370320""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
dmin_3_physically_contigous = sum(dim3_physically_contigous)
|
||||
|
||||
dim3_regular = np.array(np.array([int(x) for x in """723197
|
||||
556124
|
||||
352857
|
||||
538444
|
||||
628566
|
||||
751980
|
||||
602713
|
||||
550526
|
||||
530137
|
||||
529691
|
||||
430821
|
||||
390686
|
||||
418356
|
||||
520712
|
||||
515506
|
||||
676283
|
||||
659655
|
||||
523928""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
dmin_3_regular = sum(dim3_regular)
|
||||
|
||||
dim6_contigous = np.array(np.array([int(x) for x in """742051
|
||||
559499
|
||||
372615
|
||||
383619
|
||||
428808
|
||||
336756
|
||||
518580
|
||||
390112
|
||||
375579
|
||||
421849
|
||||
381810
|
||||
384743
|
||||
469525
|
||||
421909
|
||||
487489
|
||||
337821
|
||||
469539
|
||||
366665
|
||||
469249
|
||||
509121
|
||||
430155
|
||||
375011
|
||||
462737
|
||||
530009
|
||||
481996
|
||||
427822
|
||||
356143
|
||||
528752
|
||||
542248
|
||||
493358
|
||||
479450
|
||||
425282
|
||||
517723
|
||||
426863
|
||||
540465
|
||||
466203
|
||||
456952
|
||||
499337
|
||||
538226""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
dim_6_contigous = sum(dim6_contigous)
|
||||
|
||||
dim6_regular = np.array(np.array([int(x) for x in """736765
|
||||
531488
|
||||
423974
|
||||
374492
|
||||
554088
|
||||
388215
|
||||
374805
|
||||
519748
|
||||
474860
|
||||
534621
|
||||
535391
|
||||
631809
|
||||
496852
|
||||
509826
|
||||
519247
|
||||
471033
|
||||
508710
|
||||
525277
|
||||
501897
|
||||
394173
|
||||
493662
|
||||
375646
|
||||
431544
|
||||
382177
|
||||
630827
|
||||
452712
|
||||
556464
|
||||
510118
|
||||
534303
|
||||
550329
|
||||
574236
|
||||
479424
|
||||
575782
|
||||
428647
|
||||
508028
|
||||
475290
|
||||
491714
|
||||
462188
|
||||
294159""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
dim_6_regular = sum(dim6_regular)
|
||||
|
||||
dim40_contigous = np.array(np.array([int(x) for x in """1147403
|
||||
829036
|
||||
563124
|
||||
979733
|
||||
683541
|
||||
618378
|
||||
905917
|
||||
561979
|
||||
902313
|
||||
823260
|
||||
499959
|
||||
627898
|
||||
915499
|
||||
646610
|
||||
739437
|
||||
945235
|
||||
541299
|
||||
637887
|
||||
842954
|
||||
703414
|
||||
1291380
|
||||
675118
|
||||
671111
|
||||
585563
|
||||
585483
|
||||
951820
|
||||
791179
|
||||
701760
|
||||
552971
|
||||
696260
|
||||
902072
|
||||
815292
|
||||
826315
|
||||
740385
|
||||
805546
|
||||
736227
|
||||
690416
|
||||
769363
|
||||
825820
|
||||
1027783
|
||||
797795
|
||||
863187
|
||||
834350
|
||||
548714
|
||||
759409
|
||||
667769
|
||||
840026
|
||||
861216
|
||||
895136
|
||||
719523
|
||||
504731
|
||||
959369
|
||||
1052167
|
||||
668707
|
||||
558918
|
||||
778832
|
||||
681806
|
||||
1268380
|
||||
825940
|
||||
874677
|
||||
670802
|
||||
808349
|
||||
653938
|
||||
996132
|
||||
769110
|
||||
1077410
|
||||
714249
|
||||
660753
|
||||
551064
|
||||
867647
|
||||
556815
|
||||
687308
|
||||
780915
|
||||
604863
|
||||
936983
|
||||
818984
|
||||
697969
|
||||
1063845
|
||||
722724
|
||||
864795
|
||||
791971
|
||||
489493
|
||||
678041
|
||||
514280
|
||||
784758
|
||||
643920
|
||||
896146
|
||||
567640
|
||||
854350
|
||||
548957
|
||||
583866
|
||||
880357
|
||||
589791
|
||||
604616
|
||||
560377
|
||||
527240
|
||||
673535
|
||||
503032
|
||||
851726
|
||||
484139
|
||||
649485
|
||||
978010
|
||||
641704
|
||||
488143
|
||||
710347
|
||||
808049
|
||||
1035491
|
||||
695389
|
||||
441112
|
||||
929079
|
||||
622864
|
||||
516002
|
||||
902311
|
||||
783120
|
||||
687561
|
||||
687898
|
||||
525210
|
||||
731349
|
||||
1332534
|
||||
537479
|
||||
542351
|
||||
511237
|
||||
564299
|
||||
859176
|
||||
713889
|
||||
901452
|
||||
631327
|
||||
681258
|
||||
1035948
|
||||
634997
|
||||
455623
|
||||
851931
|
||||
612646
|
||||
902292
|
||||
787158
|
||||
660371
|
||||
791336
|
||||
702494
|
||||
644624
|
||||
764093
|
||||
946863
|
||||
984181
|
||||
666091
|
||||
571202
|
||||
590691
|
||||
1160676
|
||||
624435
|
||||
677302
|
||||
491699
|
||||
870564
|
||||
1096683
|
||||
701710
|
||||
767120
|
||||
886663
|
||||
847346
|
||||
726936
|
||||
828216
|
||||
731833
|
||||
1143815
|
||||
893945
|
||||
446303""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
dim_40_contigous = sum(dim40_contigous)
|
||||
|
||||
dim40_regular = np.array(np.array([int(x) for x in """1603321
|
||||
906001
|
||||
831508
|
||||
1260778
|
||||
874222
|
||||
639952
|
||||
811423
|
||||
876933
|
||||
871938
|
||||
845695
|
||||
811517
|
||||
1078035
|
||||
1155039
|
||||
931630
|
||||
734393
|
||||
1040144
|
||||
897608
|
||||
567688
|
||||
1017724
|
||||
816640
|
||||
1156306
|
||||
1182610
|
||||
2087536
|
||||
935131
|
||||
564650
|
||||
781929
|
||||
1032678
|
||||
842187
|
||||
714283
|
||||
1512066
|
||||
903441
|
||||
821687
|
||||
750216
|
||||
1623056
|
||||
1113602
|
||||
602318
|
||||
1056833
|
||||
829348
|
||||
924366
|
||||
917254
|
||||
1417581
|
||||
1056215
|
||||
534696
|
||||
957581
|
||||
873314
|
||||
615740
|
||||
793892
|
||||
1166512
|
||||
508943
|
||||
509190
|
||||
656245
|
||||
1304353
|
||||
909374
|
||||
638685
|
||||
1848084
|
||||
1067142
|
||||
543667
|
||||
591408
|
||||
1215657
|
||||
952755
|
||||
1191746
|
||||
1779363
|
||||
780965
|
||||
966607
|
||||
618025
|
||||
1082331
|
||||
1177658
|
||||
1136390
|
||||
1914232
|
||||
570957
|
||||
846572
|
||||
577331
|
||||
1232137
|
||||
1037267
|
||||
1262158
|
||||
1029892
|
||||
1122356
|
||||
995490
|
||||
1174365
|
||||
1340139
|
||||
1097573
|
||||
621145
|
||||
649356
|
||||
1082100
|
||||
792184
|
||||
1046410
|
||||
1217530
|
||||
952589
|
||||
634895
|
||||
866331
|
||||
1560533
|
||||
870354
|
||||
692937
|
||||
1249514
|
||||
731255
|
||||
899044
|
||||
1132861
|
||||
871474
|
||||
1440239
|
||||
1109188
|
||||
915075
|
||||
1625844
|
||||
811510
|
||||
845837
|
||||
680654
|
||||
1527778
|
||||
556130
|
||||
761597
|
||||
1452068
|
||||
856231
|
||||
729522
|
||||
670614
|
||||
1449778
|
||||
554624
|
||||
965716
|
||||
1030135
|
||||
1018319
|
||||
609395
|
||||
630688
|
||||
1379329
|
||||
674255
|
||||
808523
|
||||
1098093
|
||||
1502941
|
||||
689121
|
||||
901665
|
||||
1173878
|
||||
637713
|
||||
756162
|
||||
988917
|
||||
959839
|
||||
581439
|
||||
618517
|
||||
1482465
|
||||
539794
|
||||
982852
|
||||
878227
|
||||
1259422
|
||||
774118
|
||||
667883
|
||||
1238176
|
||||
1393325
|
||||
721119
|
||||
1185418
|
||||
1324310
|
||||
605043
|
||||
1029433
|
||||
1029119
|
||||
582207
|
||||
1028124
|
||||
844517
|
||||
1594356
|
||||
1175972
|
||||
910822
|
||||
660335
|
||||
973991
|
||||
1048600
|
||||
521274
|
||||
1771930""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
dim_40_regular = sum(dim40_regular)
|
||||
|
||||
# dimentions = ("3-dementions", "6-dementions", "40-dementions")
|
||||
# comparitors = {
|
||||
# 'FAT-Pointer based range address': (dmin_3_physically_contigous, dim_6_contigous, dim_40_contigous),
|
||||
# 'System Allocator': (dmin_3_regular, dim_6_regular, dim_40_regular),
|
||||
# }
|
||||
|
||||
# x = np.arange(len(dimentions)) # the label locations
|
||||
# width = 0.25 # the width of the bars
|
||||
# multiplier = 0
|
||||
|
||||
# fig, ax = plt.subplots(layout='constrained')
|
||||
|
||||
# for attribute, measurement in comparitors.items():
|
||||
# offset = width * multiplier
|
||||
# rects = ax.bar(x + offset, measurement, width, label=attribute)
|
||||
# ax.bar_label(rects, padding=3)
|
||||
# multiplier += 1
|
||||
|
||||
# # Add some text for labels, title and custom x-axis tick labels, etc.
|
||||
# ax.set_ylabel('DTLB L1 reads')
|
||||
# ax.set_title('L1D_TLB')
|
||||
# ax.set_xticks(x + width, dimentions)
|
||||
# ax.legend(loc='upper left', ncols=2)
|
||||
# ax.set_ylim(0, 250)
|
||||
|
||||
# plt.show()
|
||||
|
||||
# Sample data
|
||||
categories = ['3 dimentions', '6 dimentions', '40 dimentions']
|
||||
group_1 = [dmin_3_physically_contigous, dim_6_contigous, dim_40_contigous]
|
||||
group_2 = [dmin_3_regular, dim_6_regular, dim_40_regular]
|
||||
|
||||
# Number of categories
|
||||
n = len(categories)
|
||||
|
||||
# Create a bar width
|
||||
bar_width = 0.25
|
||||
|
||||
# Create an array with the positions of the bars on the x-axis
|
||||
r1 = np.arange(n)
|
||||
r2 = [x + bar_width for x in r1]
|
||||
# r3 = [x + bar_width for x in r2]
|
||||
|
||||
# Create the grouped bar graph
|
||||
plt.bar(r1, group_1, color='b', width=bar_width, edgecolor='grey', label='FAT-Pointer based range based addresses')
|
||||
plt.bar(r2, group_2, color='g', width=bar_width, edgecolor='grey', label='System memory allocator')
|
||||
# plt.bar(r3, group_3, color='r', width=bar_width, edgecolor='grey', label='Group 3')
|
||||
|
||||
# Add xticks on the middle of the grouped bars
|
||||
plt.xlabel('Number of dimentions COZ kmeans', fontweight='bold')
|
||||
plt.xticks([r + bar_width for r in range(n)], categories)
|
||||
|
||||
# Add labels and title
|
||||
plt.ylabel('L1 cache miss', fontweight='bold')
|
||||
plt.title('Sum of L1 cache misses')
|
||||
|
||||
# Add a legend
|
||||
plt.legend()
|
||||
|
||||
# Show the plot
|
||||
# plt.show()
|
||||
plt.savefig('l1-miss-kmeans.png')
|
||||
517
pyplot/Kmeans/Sum-Graph/Kmeans/l1-tlb.py
Normal file
@@ -0,0 +1,517 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
dim3_physically_contigous = np.array([1944100892,
|
||||
1929198745,
|
||||
2147407618,
|
||||
2361683504,
|
||||
2229290045,
|
||||
1936107919,
|
||||
1950196981,
|
||||
2316564611,
|
||||
2415777784,
|
||||
2251930639,
|
||||
1917048962,
|
||||
2122919883,
|
||||
2305445935,
|
||||
2216085132,
|
||||
2061970506,
|
||||
2077573288,
|
||||
2415427574])
|
||||
|
||||
dmin_3_physically_contigous = sum(dim3_physically_contigous)
|
||||
|
||||
dim3_regular = np.array([2001205195,
|
||||
2037350408,
|
||||
2077998800,
|
||||
2064361816,
|
||||
2370004326,
|
||||
2366505116,
|
||||
2433485997,
|
||||
2388982491,
|
||||
2622710065,
|
||||
2231849577,
|
||||
2213896383,
|
||||
1971144730,
|
||||
2279336623,
|
||||
2384236727,
|
||||
2159066740,
|
||||
1872922315,
|
||||
2046840068])
|
||||
|
||||
dmin_3_regular = sum(dim3_regular)
|
||||
|
||||
dim6_contigous = np.array([2472219435,
|
||||
3473628174,
|
||||
3146805964,
|
||||
2747609863,
|
||||
3624063096,
|
||||
2299770299,
|
||||
2731333935,
|
||||
2500798504,
|
||||
2279879638,
|
||||
3989040226,
|
||||
2595662999,
|
||||
3715651239,
|
||||
3293638078,
|
||||
2723808934,
|
||||
4183888040,
|
||||
2437497235,
|
||||
3262957061,
|
||||
3260647309,
|
||||
2145129129,
|
||||
3874909746,
|
||||
2471935689,
|
||||
3143457211,
|
||||
3450920659,
|
||||
2570835020,
|
||||
4197209649,
|
||||
3325832132,
|
||||
3041911087,
|
||||
3848617519,
|
||||
1973739208,
|
||||
3773139796,
|
||||
2737410930,
|
||||
2907858299,
|
||||
3813970823,
|
||||
2856501924,
|
||||
3505228599,
|
||||
2432178891,
|
||||
2854895470,
|
||||
3602152695,
|
||||
2576232334
|
||||
])
|
||||
|
||||
dim_6_contigous = sum(dim6_contigous)
|
||||
|
||||
dim6_regular = np.array([3512147188,
|
||||
2931698338,
|
||||
3130637973,
|
||||
2799013235,
|
||||
3256184323,
|
||||
2992132432,
|
||||
3041359022,
|
||||
3094813437,
|
||||
3028071885,
|
||||
3380696386,
|
||||
3018331410,
|
||||
2899603552,
|
||||
3264907899,
|
||||
3002822837,
|
||||
3045671887,
|
||||
3119204499,
|
||||
2953573342,
|
||||
2963606839,
|
||||
2855193865,
|
||||
3043260399,
|
||||
2972252469,
|
||||
2503069946,
|
||||
2958386657,
|
||||
3033810534,
|
||||
3007362327,
|
||||
3026500873,
|
||||
3159826130,
|
||||
2504328570,
|
||||
4058464445,
|
||||
3218889301,
|
||||
3597912212,
|
||||
4181723542,
|
||||
3749432601,
|
||||
3654586898,
|
||||
3557679884,
|
||||
3322970044,
|
||||
3630597266,
|
||||
3130958213,
|
||||
1019981557])
|
||||
|
||||
dim_6_regular = sum(dim6_regular)
|
||||
|
||||
dim40_contigous = np.array([5271750211,
|
||||
5947977060,
|
||||
6406575235,
|
||||
5511255729,
|
||||
6423429240,
|
||||
5094278723,
|
||||
6242776302,
|
||||
6297848739,
|
||||
4590445845,
|
||||
6764711612,
|
||||
4610372742,
|
||||
5903997396,
|
||||
5747140551,
|
||||
6300303767,
|
||||
6640645385,
|
||||
4818280514,
|
||||
7823467298,
|
||||
5828843492,
|
||||
7619923263,
|
||||
7891459023,
|
||||
7387222066,
|
||||
7941541977,
|
||||
5433577677,
|
||||
7362215737,
|
||||
7053988636,
|
||||
7387626023,
|
||||
6945895832,
|
||||
4915107460,
|
||||
6745811484,
|
||||
7802741433,
|
||||
6808767570,
|
||||
7717542941,
|
||||
5557441777,
|
||||
6274197189,
|
||||
6839290749,
|
||||
6583819269,
|
||||
8175619486,
|
||||
7374930361,
|
||||
7496545906,
|
||||
5787152431,
|
||||
6970388902,
|
||||
7150342762,
|
||||
6374515148,
|
||||
7086240550,
|
||||
6014911926,
|
||||
6805497356,
|
||||
6787839300,
|
||||
6029236409,
|
||||
7045329429,
|
||||
5463327288,
|
||||
7023215119,
|
||||
6305754943,
|
||||
6040079901,
|
||||
7642513816,
|
||||
5399217904,
|
||||
7615536076,
|
||||
6947227611,
|
||||
6886438575,
|
||||
6525913645,
|
||||
5704035737,
|
||||
6001096710,
|
||||
4595121294,
|
||||
3891698114,
|
||||
5754907462,
|
||||
5581736391,
|
||||
8438909738,
|
||||
7281420759,
|
||||
9120364283,
|
||||
8975142455,
|
||||
6194068545,
|
||||
7645451782,
|
||||
6244703959,
|
||||
8436588830,
|
||||
8530553210,
|
||||
7617848374,
|
||||
8172082546,
|
||||
6812387244,
|
||||
8703432529,
|
||||
8613319990,
|
||||
7501293173,
|
||||
8216594940,
|
||||
5673006642,
|
||||
7168602771,
|
||||
7846317702,
|
||||
7094119540,
|
||||
8854752613,
|
||||
5455608081,
|
||||
8407641178,
|
||||
8338729110,
|
||||
8119635911,
|
||||
8981010962,
|
||||
7495479592,
|
||||
8554574662,
|
||||
8404630428,
|
||||
7519304345,
|
||||
7136761544,
|
||||
6528504686,
|
||||
8236643504,
|
||||
6831632676,
|
||||
8347118009,
|
||||
7641263754,
|
||||
5707359038,
|
||||
6748898177,
|
||||
6066310601,
|
||||
6943861727,
|
||||
7098959658,
|
||||
5212148705,
|
||||
6824640874,
|
||||
5583585529,
|
||||
8003156647,
|
||||
6415970122,
|
||||
6830508723,
|
||||
7041516118,
|
||||
6892969782,
|
||||
7126446374,
|
||||
8238572592,
|
||||
6702708346,
|
||||
6612046729,
|
||||
6731145590,
|
||||
7182643495,
|
||||
6166401716,
|
||||
6391553234,
|
||||
6638759846,
|
||||
5539008636,
|
||||
8406967616,
|
||||
7660149216,
|
||||
8431551979,
|
||||
8269144799,
|
||||
7734313131,
|
||||
8403891519,
|
||||
7258535328,
|
||||
7776937659,
|
||||
6064178686,
|
||||
5770876015,
|
||||
6982161319,
|
||||
5235604055,
|
||||
8101527192,
|
||||
6046956898,
|
||||
6827456214,
|
||||
7874652143,
|
||||
5025716700,
|
||||
7506539290,
|
||||
6196558003,
|
||||
6656436732,
|
||||
5956327575,
|
||||
4626891040,
|
||||
6350370528,
|
||||
5249154115,
|
||||
7566366652,
|
||||
7035152421,
|
||||
5894510533,
|
||||
7071341874,
|
||||
6305872895,
|
||||
7188950553,
|
||||
6518432441,
|
||||
5956890819,
|
||||
7441553601,
|
||||
6285032471,
|
||||
6776691911,
|
||||
5916079446,
|
||||
2984166525
|
||||
])
|
||||
|
||||
dim_40_contigous = sum(dim40_contigous)
|
||||
|
||||
dim40_regular = np.array([int(x) for x in """7320333725
|
||||
8041544574
|
||||
6359081713
|
||||
7676718410
|
||||
7408541973
|
||||
8549261018
|
||||
6455940864
|
||||
7638044083
|
||||
7852961154
|
||||
8105713414
|
||||
8099296359
|
||||
8588846829
|
||||
9264198897
|
||||
7866569227
|
||||
8241210929
|
||||
8266772980
|
||||
9025896341
|
||||
8543734536
|
||||
8436388827
|
||||
8593700407
|
||||
7449440289
|
||||
8297109440
|
||||
8213614706
|
||||
9250000125
|
||||
7852953217
|
||||
8789498566
|
||||
7365356677
|
||||
7663656239
|
||||
7930037512
|
||||
7141236610
|
||||
7737423168
|
||||
8306296388
|
||||
8693384934
|
||||
7433924991
|
||||
7878827892
|
||||
7671595716
|
||||
7150009037
|
||||
8591898274
|
||||
8167375582
|
||||
8355489369
|
||||
7173398288
|
||||
8066437344
|
||||
6594406377
|
||||
7699310879
|
||||
7502720090
|
||||
7940562130
|
||||
6738407130
|
||||
7831934111
|
||||
7551421487
|
||||
8597892604
|
||||
7251882911
|
||||
7497411167
|
||||
7623185317
|
||||
6601524684
|
||||
8174240923
|
||||
7425424118
|
||||
7689177096
|
||||
5496078729
|
||||
5695648325
|
||||
7096458210
|
||||
4812243000
|
||||
8265423889
|
||||
7406646505
|
||||
8401794675
|
||||
8029187256
|
||||
8262191583
|
||||
8410556911
|
||||
8215142659
|
||||
7977382227
|
||||
8090414614
|
||||
8943953292
|
||||
7822463926
|
||||
7959987169
|
||||
7730265183
|
||||
8736349787
|
||||
8143049809
|
||||
6640249510
|
||||
7530281166
|
||||
6842877170
|
||||
7512789107
|
||||
7638804649
|
||||
7995198730
|
||||
7496218179
|
||||
7181518949
|
||||
8254413848
|
||||
8022381985
|
||||
7361988882
|
||||
7810130859
|
||||
7417215012
|
||||
7872443581
|
||||
7732389294
|
||||
7814055171
|
||||
7463971008
|
||||
8433179161
|
||||
7010361542
|
||||
8758722649
|
||||
7834208169
|
||||
7467025814
|
||||
7909486359
|
||||
7462899259
|
||||
8890074348
|
||||
8072645870
|
||||
7422221759
|
||||
8907995744
|
||||
6612293480
|
||||
7843416231
|
||||
8411079708
|
||||
9525606221
|
||||
6937922478
|
||||
7845436454
|
||||
7864992534
|
||||
7427672637
|
||||
8619142087
|
||||
8731377069
|
||||
8885281498
|
||||
7559808728
|
||||
7173215681
|
||||
7652102219
|
||||
6717276768
|
||||
8244303885
|
||||
7151149289
|
||||
7102114957
|
||||
6526600396
|
||||
7151648008
|
||||
7526924470
|
||||
8040860568
|
||||
8175611289
|
||||
7459798487
|
||||
7145058572
|
||||
6890657989
|
||||
7345908520
|
||||
8924306436
|
||||
8931634035
|
||||
8324005045
|
||||
8599147593
|
||||
8880835677
|
||||
8165157302
|
||||
7460488360
|
||||
8628914421
|
||||
8583302346
|
||||
7934022758
|
||||
7056421549
|
||||
8275846606
|
||||
7009386280
|
||||
7495129707
|
||||
7773552723
|
||||
7645908705
|
||||
8608406256
|
||||
8712832214
|
||||
7664452295
|
||||
8321095578
|
||||
8643168243
|
||||
7250479737
|
||||
7556324607
|
||||
7738815689
|
||||
6796106269
|
||||
7213420720
|
||||
7365304658
|
||||
7297146598""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_40_regular = sum(dim40_regular)
|
||||
|
||||
# dimentions = ("3-dementions", "6-dementions", "40-dementions")
|
||||
# comparitors = {
|
||||
# 'FAT-Pointer based range address': (dmin_3_physically_contigous, dim_6_contigous, dim_40_contigous),
|
||||
# 'System Allocator': (dmin_3_regular, dim_6_regular, dim_40_regular),
|
||||
# }
|
||||
|
||||
# x = np.arange(len(dimentions)) # the label locations
|
||||
# width = 0.25 # the width of the bars
|
||||
# multiplier = 0
|
||||
|
||||
# fig, ax = plt.subplots(layout='constrained')
|
||||
|
||||
# for attribute, measurement in comparitors.items():
|
||||
# offset = width * multiplier
|
||||
# rects = ax.bar(x + offset, measurement, width, label=attribute)
|
||||
# ax.bar_label(rects, padding=3)
|
||||
# multiplier += 1
|
||||
|
||||
# # Add some text for labels, title and custom x-axis tick labels, etc.
|
||||
# ax.set_ylabel('DTLB L1 reads')
|
||||
# ax.set_title('L1D_TLB')
|
||||
# ax.set_xticks(x + width, dimentions)
|
||||
# ax.legend(loc='upper left', ncols=2)
|
||||
# ax.set_ylim(0, 250)
|
||||
|
||||
# plt.show()
|
||||
|
||||
# Sample data
|
||||
categories = ['3 dimentions', '6 dimentions', '40 dimentions']
|
||||
group_1 = [dmin_3_physically_contigous, dim_6_contigous, dim_40_contigous]
|
||||
group_2 = [dmin_3_regular, dim_6_regular, dim_40_regular]
|
||||
|
||||
# Number of categories
|
||||
n = len(categories)
|
||||
|
||||
# Create a bar width
|
||||
bar_width = 0.25
|
||||
|
||||
# Create an array with the positions of the bars on the x-axis
|
||||
r1 = np.arange(n)
|
||||
r2 = [x + bar_width for x in r1]
|
||||
# r3 = [x + bar_width for x in r2]
|
||||
|
||||
# Create the grouped bar graph
|
||||
plt.bar(r1, group_1, color='b', width=bar_width, edgecolor='grey', label='FAT-Pointer based range based addresses')
|
||||
plt.bar(r2, group_2, color='g', width=bar_width, edgecolor='grey', label='System memory allocator')
|
||||
# plt.bar(r3, group_3, color='r', width=bar_width, edgecolor='grey', label='Group 3')
|
||||
|
||||
# Add xticks on the middle of the grouped bars
|
||||
plt.xlabel('Number of dimentions COZ kmeans', fontweight='bold')
|
||||
plt.xticks([r + bar_width for r in range(n)], categories)
|
||||
|
||||
# Add labels and title
|
||||
plt.ylabel('DTLB L1 reads', fontweight='bold')
|
||||
plt.title('Sum of DTLB L1 reads')
|
||||
|
||||
# Add a legend
|
||||
plt.legend()
|
||||
|
||||
# Show the plot
|
||||
# plt.show()
|
||||
plt.savefig('l1-tlb-kmeans.png')
|
||||
515
pyplot/Kmeans/Sum-Graph/Kmeans/l2-tlb.py
Normal file
@@ -0,0 +1,515 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
dim3_physically_contigous = np.array([78303,
|
||||
34734,
|
||||
129682,
|
||||
93214,
|
||||
59616,
|
||||
111134,
|
||||
75559,
|
||||
85767,
|
||||
96804,
|
||||
87956,
|
||||
83874,
|
||||
72777,
|
||||
80302,
|
||||
59289,
|
||||
105762,
|
||||
62793,
|
||||
78365,
|
||||
77091])
|
||||
|
||||
dmin_3_physically_contigous = sum(dim3_physically_contigous)
|
||||
|
||||
dim3_regular = np.array([127978,
|
||||
79046,
|
||||
67101,
|
||||
99081,
|
||||
186824,
|
||||
111734,
|
||||
120426,
|
||||
65293,
|
||||
112589,
|
||||
113350,
|
||||
110875,
|
||||
74596,
|
||||
86142,
|
||||
77054,
|
||||
106211,
|
||||
133301,
|
||||
109764,
|
||||
68751])
|
||||
|
||||
dmin_3_regular = sum(dim3_regular)
|
||||
|
||||
dim6_contigous = np.array([72589,
|
||||
169120,
|
||||
35199,
|
||||
71459,
|
||||
55242,
|
||||
83325,
|
||||
144975,
|
||||
55231,
|
||||
73573,
|
||||
103593,
|
||||
122123,
|
||||
88845,
|
||||
99314,
|
||||
32081,
|
||||
130112,
|
||||
117455,
|
||||
73731,
|
||||
90279,
|
||||
93552,
|
||||
136261,
|
||||
35079,
|
||||
81254,
|
||||
93388,
|
||||
79594,
|
||||
173510,
|
||||
51158,
|
||||
140234,
|
||||
64106,
|
||||
45336,
|
||||
178182,
|
||||
38224,
|
||||
101736,
|
||||
104410,
|
||||
57382,
|
||||
141596,
|
||||
59233,
|
||||
84714,
|
||||
74438,
|
||||
55860])
|
||||
|
||||
dim_6_contigous = sum(dim6_contigous)
|
||||
|
||||
dim6_regular = np.array([132941,
|
||||
85450,
|
||||
47978,
|
||||
100585,
|
||||
137429,
|
||||
65503,
|
||||
46820,
|
||||
57147,
|
||||
94444,
|
||||
112309,
|
||||
62289,
|
||||
91219,
|
||||
34585,
|
||||
89262,
|
||||
68500,
|
||||
77858,
|
||||
41711,
|
||||
53555,
|
||||
43719,
|
||||
122750,
|
||||
57234,
|
||||
139151,
|
||||
58964,
|
||||
85669,
|
||||
50914,
|
||||
75187,
|
||||
80292,
|
||||
126473,
|
||||
102653,
|
||||
104636,
|
||||
123366,
|
||||
79591,
|
||||
63819,
|
||||
55965,
|
||||
106456,
|
||||
34263,
|
||||
113263,
|
||||
71477])
|
||||
|
||||
dim_6_regular = sum(dim6_regular)
|
||||
|
||||
dim40_contigous = np.array([int(x) for x in """66540
|
||||
7859
|
||||
23464
|
||||
43214
|
||||
27505
|
||||
27462
|
||||
46371
|
||||
10104
|
||||
65940
|
||||
26508
|
||||
18169
|
||||
33410
|
||||
35932
|
||||
31967
|
||||
61487
|
||||
22289
|
||||
61131
|
||||
49936
|
||||
8378
|
||||
70970
|
||||
64227
|
||||
45327
|
||||
14493
|
||||
8585
|
||||
34713
|
||||
62427
|
||||
27633
|
||||
49391
|
||||
28682
|
||||
21025
|
||||
30477
|
||||
19946
|
||||
34838
|
||||
53935
|
||||
51581
|
||||
19594
|
||||
17913
|
||||
33452
|
||||
57925
|
||||
78362
|
||||
9176
|
||||
43589
|
||||
57070
|
||||
23447
|
||||
28627
|
||||
17297
|
||||
54966
|
||||
59315
|
||||
52363
|
||||
50624
|
||||
26515
|
||||
31190
|
||||
106412
|
||||
35441
|
||||
10280
|
||||
21075
|
||||
9663
|
||||
78816
|
||||
48329
|
||||
48742
|
||||
40940
|
||||
40585
|
||||
33234
|
||||
71473
|
||||
21832
|
||||
66627
|
||||
18375
|
||||
18306
|
||||
34411
|
||||
56034
|
||||
24142
|
||||
74324
|
||||
34921
|
||||
10427
|
||||
65288
|
||||
17961
|
||||
30433
|
||||
17538
|
||||
33052
|
||||
63611
|
||||
15918
|
||||
8983
|
||||
47290
|
||||
30154
|
||||
68913
|
||||
30144
|
||||
68603
|
||||
16772
|
||||
76516
|
||||
31663
|
||||
50528
|
||||
36797
|
||||
27584
|
||||
74728
|
||||
9514
|
||||
16252
|
||||
34017
|
||||
39159
|
||||
73261
|
||||
34238
|
||||
9979
|
||||
100145
|
||||
30276
|
||||
32994
|
||||
26959
|
||||
37082
|
||||
82385
|
||||
34030
|
||||
65503
|
||||
24471
|
||||
22303
|
||||
9260
|
||||
24329
|
||||
69294
|
||||
34741
|
||||
23791
|
||||
43832
|
||||
50302
|
||||
98996
|
||||
45543
|
||||
35170
|
||||
9195
|
||||
9658
|
||||
63685
|
||||
21802
|
||||
39287
|
||||
35287
|
||||
8836
|
||||
113920
|
||||
38764
|
||||
23417
|
||||
41543
|
||||
11622
|
||||
45682
|
||||
57685
|
||||
53500
|
||||
13722
|
||||
11203
|
||||
22599
|
||||
92580
|
||||
40797
|
||||
56990
|
||||
81024
|
||||
9030
|
||||
45653
|
||||
65413
|
||||
17266
|
||||
59900
|
||||
33502
|
||||
10976
|
||||
28385
|
||||
33838
|
||||
61241
|
||||
29094
|
||||
36072
|
||||
146101
|
||||
8552
|
||||
30128
|
||||
51724
|
||||
24090""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_40_contigous = sum(dim40_contigous)
|
||||
|
||||
dim40_regular = np.array([int(x) for x in """147309
|
||||
24207
|
||||
72608
|
||||
53185
|
||||
29916
|
||||
62288
|
||||
19733
|
||||
20551
|
||||
15416
|
||||
33266
|
||||
38374
|
||||
37710
|
||||
76787
|
||||
38460
|
||||
35339
|
||||
15569
|
||||
43172
|
||||
40743
|
||||
35956
|
||||
52172
|
||||
17231
|
||||
32107
|
||||
66245
|
||||
78219
|
||||
57454
|
||||
37971
|
||||
21077
|
||||
38089
|
||||
16171
|
||||
26842
|
||||
70623
|
||||
61517
|
||||
43946
|
||||
16101
|
||||
64700
|
||||
15876
|
||||
18604
|
||||
52025
|
||||
32854
|
||||
48066
|
||||
110412
|
||||
74894
|
||||
15982
|
||||
16951
|
||||
30104
|
||||
67263
|
||||
97568
|
||||
71199
|
||||
47570
|
||||
60400
|
||||
119246
|
||||
46025
|
||||
39649
|
||||
61263
|
||||
31674
|
||||
18139
|
||||
52567
|
||||
106665
|
||||
28508
|
||||
50885
|
||||
30868
|
||||
64452
|
||||
21987
|
||||
104550
|
||||
60096
|
||||
35098
|
||||
27626
|
||||
26791
|
||||
44735
|
||||
24076
|
||||
53037
|
||||
18897
|
||||
49820
|
||||
44744
|
||||
46927
|
||||
58569
|
||||
17651
|
||||
45036
|
||||
55358
|
||||
31643
|
||||
15816
|
||||
75636
|
||||
62402
|
||||
17341
|
||||
71459
|
||||
41987
|
||||
16640
|
||||
15786
|
||||
79108
|
||||
60482
|
||||
35872
|
||||
21016
|
||||
38518
|
||||
17325
|
||||
16738
|
||||
84271
|
||||
28477
|
||||
52976
|
||||
40236
|
||||
51622
|
||||
19197
|
||||
15498
|
||||
38114
|
||||
34553
|
||||
83946
|
||||
108452
|
||||
44795
|
||||
39454
|
||||
49442
|
||||
22963
|
||||
72816
|
||||
64652
|
||||
74099
|
||||
22675
|
||||
60850
|
||||
76929
|
||||
50585
|
||||
61838
|
||||
41130
|
||||
45360
|
||||
17933
|
||||
70220
|
||||
87695
|
||||
19565
|
||||
64806
|
||||
78487
|
||||
21187
|
||||
56748
|
||||
93777
|
||||
53159
|
||||
19220
|
||||
33799
|
||||
19743
|
||||
31416
|
||||
37750
|
||||
67563
|
||||
53070
|
||||
18014
|
||||
19133
|
||||
39304
|
||||
41509
|
||||
16661
|
||||
81493
|
||||
53422
|
||||
17376
|
||||
15742
|
||||
56450
|
||||
49720
|
||||
34734
|
||||
47112
|
||||
16915
|
||||
17586
|
||||
16895
|
||||
79737
|
||||
48293
|
||||
35941
|
||||
18742
|
||||
54320
|
||||
33438""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_40_regular = sum(dim40_regular)
|
||||
|
||||
# dimentions = ("3-dementions", "6-dementions", "40-dementions")
|
||||
# comparitors = {
|
||||
# 'FAT-Pointer based range address': (dmin_3_physically_contigous, dim_6_contigous, dim_40_contigous),
|
||||
# 'System Allocator': (dmin_3_regular, dim_6_regular, dim_40_regular),
|
||||
# }
|
||||
|
||||
# x = np.arange(len(dimentions)) # the label locations
|
||||
# width = 0.25 # the width of the bars
|
||||
# multiplier = 0
|
||||
|
||||
# fig, ax = plt.subplots(layout='constrained')
|
||||
|
||||
# for attribute, measurement in comparitors.items():
|
||||
# offset = width * multiplier
|
||||
# rects = ax.bar(x + offset, measurement, width, label=attribute)
|
||||
# ax.bar_label(rects, padding=3)
|
||||
# multiplier += 1
|
||||
|
||||
# # Add some text for labels, title and custom x-axis tick labels, etc.
|
||||
# ax.set_ylabel('DTLB L1 reads')
|
||||
# ax.set_title('L1D_TLB')
|
||||
# ax.set_xticks(x + width, dimentions)
|
||||
# ax.legend(loc='upper left', ncols=2)
|
||||
# ax.set_ylim(0, 250)
|
||||
|
||||
# plt.show()
|
||||
|
||||
# Sample data
|
||||
categories = ['3 dimentions', '6 dimentions', '40 dimentions']
|
||||
group_1 = [dmin_3_physically_contigous, dim_6_contigous, dim_40_contigous]
|
||||
group_2 = [dmin_3_regular, dim_6_regular, dim_40_regular]
|
||||
|
||||
# Number of categories
|
||||
n = len(categories)
|
||||
|
||||
# Create a bar width
|
||||
bar_width = 0.25
|
||||
|
||||
# Create an array with the positions of the bars on the x-axis
|
||||
r1 = np.arange(n)
|
||||
r2 = [x + bar_width for x in r1]
|
||||
# r3 = [x + bar_width for x in r2]
|
||||
|
||||
# Create the grouped bar graph
|
||||
plt.bar(r1, group_1, color='b', width=bar_width, edgecolor='grey', label='FAT-Pointer based range based addresses')
|
||||
plt.bar(r2, group_2, color='g', width=bar_width, edgecolor='grey', label='System memory allocator')
|
||||
# plt.bar(r3, group_3, color='r', width=bar_width, edgecolor='grey', label='Group 3')
|
||||
|
||||
# Add xticks on the middle of the grouped bars
|
||||
plt.xlabel('Number of dimentions COZ kmeans', fontweight='bold')
|
||||
plt.xticks([r + bar_width for r in range(n)], categories)
|
||||
|
||||
# Add labels and title
|
||||
plt.ylabel('DTLB L2 reads', fontweight='bold')
|
||||
plt.title('Sum of DTLB L2 read')
|
||||
|
||||
# Add a legend
|
||||
plt.legend()
|
||||
|
||||
# Show the plot
|
||||
# plt.show()
|
||||
plt.savefig('l2-tlb-kmeans.png')
|
||||
518
pyplot/Kmeans/Sum-Graph/Kmeans/tlb-walk.py
Normal file
@@ -0,0 +1,518 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
dim3_physically_contigous = np.array([3625,
|
||||
1016,
|
||||
1546,
|
||||
1556,
|
||||
1424,
|
||||
1382,
|
||||
1598,
|
||||
1544,
|
||||
1369,
|
||||
1301,
|
||||
1410,
|
||||
1415,
|
||||
1520,
|
||||
1291,
|
||||
1425,
|
||||
1653,
|
||||
1496,
|
||||
951])
|
||||
|
||||
dmin_3_physically_contigous = sum(dim3_physically_contigous)
|
||||
|
||||
dim3_regular = np.array([6798,
|
||||
2144,
|
||||
2327,
|
||||
2234,
|
||||
2779,
|
||||
3046,
|
||||
2824,
|
||||
2762,
|
||||
2857,
|
||||
2404,
|
||||
3236,
|
||||
2473,
|
||||
2517,
|
||||
2558,
|
||||
3065,
|
||||
3222,
|
||||
3235,
|
||||
4939])
|
||||
|
||||
dmin_3_regular = sum(dim3_regular)
|
||||
|
||||
dim6_contigous = np.array([12140,
|
||||
7054,
|
||||
3621,
|
||||
5391,
|
||||
6391,
|
||||
6235,
|
||||
4067,
|
||||
4433,
|
||||
5248,
|
||||
3321,
|
||||
4790,
|
||||
4832,
|
||||
5783,
|
||||
3709,
|
||||
6746,
|
||||
4699,
|
||||
4452,
|
||||
6665,
|
||||
3209,
|
||||
7217,
|
||||
3974,
|
||||
5167,
|
||||
6708,
|
||||
4311,
|
||||
5803,
|
||||
5319,
|
||||
5280,
|
||||
6898,
|
||||
3960,
|
||||
5857,
|
||||
3792,
|
||||
6350,
|
||||
5911,
|
||||
4862,
|
||||
5997,
|
||||
7540,
|
||||
4661,
|
||||
6060,
|
||||
4739
|
||||
])
|
||||
|
||||
dim_6_contigous = sum(dim6_contigous)
|
||||
|
||||
dim6_regular = np.array([12300,
|
||||
8615,
|
||||
6314,
|
||||
6995,
|
||||
4796,
|
||||
10032,
|
||||
4414,
|
||||
8960,
|
||||
7265,
|
||||
8670,
|
||||
5075,
|
||||
8384,
|
||||
5986,
|
||||
8500,
|
||||
7639,
|
||||
8565,
|
||||
7414,
|
||||
5646,
|
||||
9956,
|
||||
4638,
|
||||
8766,
|
||||
5357,
|
||||
13762,
|
||||
6227,
|
||||
12425,
|
||||
7081,
|
||||
11306,
|
||||
8253,
|
||||
8411,
|
||||
6267,
|
||||
15571,
|
||||
5383,
|
||||
11586,
|
||||
8497,
|
||||
11189,
|
||||
7123,
|
||||
7342,
|
||||
6345,
|
||||
5933])
|
||||
|
||||
dim_6_regular = sum(dim6_regular)
|
||||
|
||||
dim40_contigous = np.array([int(x) for x in """32507
|
||||
4034
|
||||
27922
|
||||
22075
|
||||
45252
|
||||
6514
|
||||
45268
|
||||
20768
|
||||
78216
|
||||
5116
|
||||
4901
|
||||
24579
|
||||
30668
|
||||
4423
|
||||
12543
|
||||
16230
|
||||
20602
|
||||
23792
|
||||
29764
|
||||
35176
|
||||
22257
|
||||
21233
|
||||
22759
|
||||
41562
|
||||
5007
|
||||
40803
|
||||
15581
|
||||
18344
|
||||
4326
|
||||
25407
|
||||
37615
|
||||
25375
|
||||
19009
|
||||
43028
|
||||
31940
|
||||
25065
|
||||
20590
|
||||
3655
|
||||
39584
|
||||
11664
|
||||
16350
|
||||
18779
|
||||
3277
|
||||
5144
|
||||
26088
|
||||
10985
|
||||
25409
|
||||
38962
|
||||
19469
|
||||
11783
|
||||
24724
|
||||
18592
|
||||
31519
|
||||
18800
|
||||
10576
|
||||
33770
|
||||
11064
|
||||
71505
|
||||
8464
|
||||
4462
|
||||
22492
|
||||
33959
|
||||
4642
|
||||
34880
|
||||
4680
|
||||
32584
|
||||
4644
|
||||
16117
|
||||
21607
|
||||
4376
|
||||
4792
|
||||
30989
|
||||
18197
|
||||
13420
|
||||
27542
|
||||
21644
|
||||
22988
|
||||
41102
|
||||
37441
|
||||
34021
|
||||
13875
|
||||
17100
|
||||
43959
|
||||
10988
|
||||
25154
|
||||
32953
|
||||
18680
|
||||
11657
|
||||
37957
|
||||
18279
|
||||
26901
|
||||
36833
|
||||
10165
|
||||
15802
|
||||
23218
|
||||
4811
|
||||
26871
|
||||
22496
|
||||
12986
|
||||
24293
|
||||
16020
|
||||
37425
|
||||
17160
|
||||
5464
|
||||
54857
|
||||
37666
|
||||
30590
|
||||
4896
|
||||
4561
|
||||
17568
|
||||
15857
|
||||
4497
|
||||
33919
|
||||
11669
|
||||
19176
|
||||
53357
|
||||
12422
|
||||
13431
|
||||
21433
|
||||
4551
|
||||
20220
|
||||
11167
|
||||
4747
|
||||
7006
|
||||
24694
|
||||
24494
|
||||
52551
|
||||
11999
|
||||
80094
|
||||
18621
|
||||
9625
|
||||
19697
|
||||
18924
|
||||
5664
|
||||
39953
|
||||
5258
|
||||
9940
|
||||
21864
|
||||
4681
|
||||
60347
|
||||
4316
|
||||
18867
|
||||
17767
|
||||
18939
|
||||
13191
|
||||
15379
|
||||
4516
|
||||
15721
|
||||
19535
|
||||
19272
|
||||
44248
|
||||
18811
|
||||
21077
|
||||
54181
|
||||
29909
|
||||
32954
|
||||
12046
|
||||
17235
|
||||
37583
|
||||
15340""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_40_contigous = sum(dim40_contigous)
|
||||
|
||||
dim40_regular = np.array([int(x) for x in """37838
|
||||
4375
|
||||
4755
|
||||
13395
|
||||
4663
|
||||
17351
|
||||
35495
|
||||
41361
|
||||
14851
|
||||
3678
|
||||
9728
|
||||
7058
|
||||
18282
|
||||
34639
|
||||
31071
|
||||
4249
|
||||
20021
|
||||
3460
|
||||
14453
|
||||
12527
|
||||
21730
|
||||
39797
|
||||
40936
|
||||
3952
|
||||
3572
|
||||
35124
|
||||
3157
|
||||
24017
|
||||
17363
|
||||
14283
|
||||
41690
|
||||
3627
|
||||
30967
|
||||
10083
|
||||
17288
|
||||
8446
|
||||
18369
|
||||
12531
|
||||
15990
|
||||
22124
|
||||
63165
|
||||
11521
|
||||
18297
|
||||
30464
|
||||
26297
|
||||
4068
|
||||
5461
|
||||
62879
|
||||
4968
|
||||
25299
|
||||
50562
|
||||
4084
|
||||
4528
|
||||
4962
|
||||
59035
|
||||
4958
|
||||
21144
|
||||
35628
|
||||
4261
|
||||
4349
|
||||
14859
|
||||
36841
|
||||
8263
|
||||
17753
|
||||
12513
|
||||
15457
|
||||
18778
|
||||
4148
|
||||
25284
|
||||
18899
|
||||
28869
|
||||
16736
|
||||
26025
|
||||
7030
|
||||
4598
|
||||
13422
|
||||
14592
|
||||
14660
|
||||
26539
|
||||
23846
|
||||
22503
|
||||
3771
|
||||
8567
|
||||
31149
|
||||
7480
|
||||
19305
|
||||
10491
|
||||
4415
|
||||
20470
|
||||
15658
|
||||
17870
|
||||
11822
|
||||
19760
|
||||
22506
|
||||
17256
|
||||
18958
|
||||
18275
|
||||
26096
|
||||
3780
|
||||
20019
|
||||
44296
|
||||
27396
|
||||
13735
|
||||
24572
|
||||
12058
|
||||
4065
|
||||
13409
|
||||
18858
|
||||
63139
|
||||
41617
|
||||
4256
|
||||
16795
|
||||
69961
|
||||
8029
|
||||
22993
|
||||
82166
|
||||
3994
|
||||
4724
|
||||
5504
|
||||
28454
|
||||
17037
|
||||
29973
|
||||
41238
|
||||
18465
|
||||
9060
|
||||
4665
|
||||
34217
|
||||
5250
|
||||
41130
|
||||
36820
|
||||
16737
|
||||
4086
|
||||
21270
|
||||
55031
|
||||
3988
|
||||
25838
|
||||
26389
|
||||
38865
|
||||
6083
|
||||
23834
|
||||
34979
|
||||
3616
|
||||
15021
|
||||
4614
|
||||
25599
|
||||
18673
|
||||
4572
|
||||
18720
|
||||
4562
|
||||
38451
|
||||
19787
|
||||
32943
|
||||
4457
|
||||
4577
|
||||
10062
|
||||
34287
|
||||
7733
|
||||
21443
|
||||
21917""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_40_regular = sum(dim40_regular)
|
||||
|
||||
# dimentions = ("3-dementions", "6-dementions", "40-dementions")
|
||||
# comparitors = {
|
||||
# 'FAT-Pointer based range address': (dmin_3_physically_contigous, dim_6_contigous, dim_40_contigous),
|
||||
# 'System Allocator': (dmin_3_regular, dim_6_regular, dim_40_regular),
|
||||
# }
|
||||
|
||||
# x = np.arange(len(dimentions)) # the label locations
|
||||
# width = 0.25 # the width of the bars
|
||||
# multiplier = 0
|
||||
|
||||
# fig, ax = plt.subplots(layout='constrained')
|
||||
|
||||
# for attribute, measurement in comparitors.items():
|
||||
# offset = width * multiplier
|
||||
# rects = ax.bar(x + offset, measurement, width, label=attribute)
|
||||
# ax.bar_label(rects, padding=3)
|
||||
# multiplier += 1
|
||||
|
||||
# # Add some text for labels, title and custom x-axis tick labels, etc.
|
||||
# ax.set_ylabel('DTLB L1 reads')
|
||||
# ax.set_title('L1D_TLB')
|
||||
# ax.set_xticks(x + width, dimentions)
|
||||
# ax.legend(loc='upper left', ncols=2)
|
||||
# ax.set_ylim(0, 250)
|
||||
|
||||
# plt.show()
|
||||
|
||||
# Sample data
|
||||
categories = ['3 dimentions', '6 dimentions', '40 dimentions']
|
||||
group_1 = [dmin_3_physically_contigous, dim_6_contigous, dim_40_contigous]
|
||||
group_2 = [dmin_3_regular, dim_6_regular, dim_40_regular]
|
||||
|
||||
# Number of categories
|
||||
n = len(categories)
|
||||
|
||||
# Create a bar width
|
||||
bar_width = 0.25
|
||||
|
||||
# Create an array with the positions of the bars on the x-axis
|
||||
r1 = np.arange(n)
|
||||
r2 = [x + bar_width for x in r1]
|
||||
# r3 = [x + bar_width for x in r2]
|
||||
|
||||
# Create the grouped bar graph
|
||||
plt.bar(r1, group_1, color='b', width=bar_width, edgecolor='grey', label='FAT-Pointer based range based addresses')
|
||||
plt.bar(r2, group_2, color='g', width=bar_width, edgecolor='grey', label='System memory allocator')
|
||||
# plt.bar(r3, group_3, color='r', width=bar_width, edgecolor='grey', label='Group 3')
|
||||
|
||||
# Add xticks on the middle of the grouped bars
|
||||
plt.xlabel('Number of dimentions COZ kmeans', fontweight='bold')
|
||||
plt.xticks([r + bar_width for r in range(n)], categories)
|
||||
|
||||
# Add labels and title
|
||||
plt.ylabel('DTLB walks', fontweight='bold')
|
||||
plt.title('Sum of DTLB walks')
|
||||
|
||||
# Add a legend
|
||||
plt.legend()
|
||||
|
||||
# Show the plot
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('tlb-walk-kmeans.png')
|
||||
396
pyplot/Kmeans/Sum-Graph/MatrixMultiply/l1-miss.py
Normal file
@@ -0,0 +1,396 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
dim3_physically_contigous = np.array([92265])
|
||||
|
||||
dmin_3_physically_contigous = sum(dim3_physically_contigous)
|
||||
|
||||
dim3_regular = np.array([94650])
|
||||
|
||||
dmin_3_regular = sum(dim3_regular)
|
||||
|
||||
dim6_contigous = np.array(np.array([int(x) for x in """0
|
||||
0
|
||||
202420
|
||||
108748
|
||||
7366843
|
||||
12350564
|
||||
13586069
|
||||
6779734
|
||||
56950""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
dim_6_contigous = sum(dim6_contigous)
|
||||
|
||||
dim6_regular = np.array(np.array([int(x) for x in """105883
|
||||
0
|
||||
135218
|
||||
0
|
||||
8322082
|
||||
12700590
|
||||
12017926
|
||||
6160362
|
||||
134527""".replace(' ',',').replace('\n','').split(",")]))
|
||||
dim_6_regular = sum(dim6_regular)
|
||||
|
||||
dim40_contigous = np.array([int(x) for x in """0
|
||||
0
|
||||
4417755799
|
||||
0
|
||||
2587126745
|
||||
0
|
||||
1907452696
|
||||
0
|
||||
4470211896
|
||||
1490535856
|
||||
1488268722
|
||||
1492406027
|
||||
0
|
||||
0
|
||||
3020774732
|
||||
1502998186
|
||||
1495229685
|
||||
1513519294
|
||||
2943026264
|
||||
1500269058
|
||||
52149259
|
||||
1496657426
|
||||
2937658244
|
||||
1494297672
|
||||
74030192
|
||||
1501455826
|
||||
1495883230
|
||||
2888428091
|
||||
1482110806
|
||||
150844250
|
||||
2836859365
|
||||
0
|
||||
2995913912
|
||||
0
|
||||
2986402746
|
||||
0
|
||||
1637257243
|
||||
2848563352
|
||||
336366333
|
||||
0
|
||||
2955346561
|
||||
1582901866
|
||||
1494805041
|
||||
1486848958
|
||||
1575414883
|
||||
0
|
||||
3006540619
|
||||
1651961484
|
||||
1495211562
|
||||
1418961073
|
||||
2413046393
|
||||
0
|
||||
2310831892
|
||||
1545685148
|
||||
1494591413
|
||||
1494394190
|
||||
1495772460
|
||||
1497140001
|
||||
1506995279
|
||||
1502064624
|
||||
1503212470
|
||||
1494161247
|
||||
1496442614
|
||||
1494353921
|
||||
1496910315
|
||||
1490640984
|
||||
2120990326
|
||||
1496964537
|
||||
1503480472
|
||||
0
|
||||
2487680099
|
||||
1511772203
|
||||
1990506585
|
||||
1085
|
||||
1495006176
|
||||
2981033808
|
||||
1497807398
|
||||
1499905019
|
||||
0
|
||||
2992809338
|
||||
1499678220
|
||||
1503422919
|
||||
1432738350
|
||||
1572013300
|
||||
1488687745
|
||||
1491956406
|
||||
1493056793
|
||||
1490487590
|
||||
1494885596
|
||||
0
|
||||
2981312602
|
||||
1495995022
|
||||
1494473531
|
||||
91287100
|
||||
2756251323
|
||||
230008646
|
||||
1491190180
|
||||
1430538651
|
||||
1583249575
|
||||
1576908184
|
||||
1332064486
|
||||
0
|
||||
3175178358
|
||||
0
|
||||
3080574208
|
||||
2649916724
|
||||
1275899646
|
||||
0
|
||||
2878955633""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_40_contigous = sum(dim40_contigous)
|
||||
|
||||
dim40_regular = np.array([int(x) for x in """0
|
||||
2873345808
|
||||
0
|
||||
0
|
||||
4568364039
|
||||
0
|
||||
2962578326
|
||||
1482026881
|
||||
1482959662
|
||||
1283314470
|
||||
1696338408
|
||||
1493064117
|
||||
1496278352
|
||||
1493690192
|
||||
1490808431
|
||||
1482241102
|
||||
1485073059
|
||||
1493488736
|
||||
1493734395
|
||||
1494051944
|
||||
1491925626
|
||||
1490400073
|
||||
1492918850
|
||||
0
|
||||
2989795422
|
||||
0
|
||||
2981131303
|
||||
1490971079
|
||||
1490457922
|
||||
0
|
||||
2972098981
|
||||
148614774
|
||||
0
|
||||
0
|
||||
4865632909
|
||||
1257951927
|
||||
1588161938
|
||||
1785512571
|
||||
0
|
||||
0
|
||||
0
|
||||
6770405012
|
||||
0
|
||||
2348949300
|
||||
0
|
||||
0
|
||||
4570645310
|
||||
0
|
||||
2824636217
|
||||
1762646952
|
||||
0
|
||||
2891891542
|
||||
1579360612
|
||||
0
|
||||
0
|
||||
4915926092
|
||||
1496744037
|
||||
1495870886
|
||||
1497206544
|
||||
1287107800
|
||||
0
|
||||
3203518565
|
||||
0
|
||||
2992849786
|
||||
0
|
||||
2975114733
|
||||
1481666721
|
||||
686803
|
||||
2988542677
|
||||
1496054096
|
||||
1496578264
|
||||
1491746836
|
||||
1492851059
|
||||
1497143785
|
||||
1495192565
|
||||
1500194130
|
||||
0
|
||||
1637919784
|
||||
2854243731
|
||||
0
|
||||
2366222238
|
||||
2128844017
|
||||
0
|
||||
1818736204
|
||||
2676149826
|
||||
1497854865
|
||||
962431460
|
||||
0
|
||||
3539793686
|
||||
1024018613
|
||||
1489816277
|
||||
0
|
||||
3158434789
|
||||
1369912046
|
||||
1491311601
|
||||
1575013089
|
||||
0
|
||||
0
|
||||
4446661541
|
||||
1416884482
|
||||
1710611180
|
||||
1757241245
|
||||
1233889541
|
||||
1437873524
|
||||
0
|
||||
3280246404
|
||||
0
|
||||
2995489571
|
||||
1541069762
|
||||
3930514690
|
||||
3863607919
|
||||
3597368896
|
||||
3734892809
|
||||
3944232184
|
||||
3709601722
|
||||
3642560210
|
||||
3625597517
|
||||
3920215743
|
||||
3927141046
|
||||
4000023820
|
||||
3916655686
|
||||
3951797607
|
||||
3952120224
|
||||
3689180680
|
||||
3587372425
|
||||
3615616989
|
||||
3726388814
|
||||
3929746604
|
||||
3929801334
|
||||
3942019114
|
||||
3648646073
|
||||
3944755905
|
||||
3929255746
|
||||
3668055728
|
||||
3672894376
|
||||
3844013718
|
||||
3910779810
|
||||
3940544740
|
||||
4006830187
|
||||
3928198267
|
||||
3531412165
|
||||
3818215173
|
||||
3738150454
|
||||
3604332393
|
||||
3650311511
|
||||
3807369864
|
||||
3826302554
|
||||
3775371186
|
||||
3710423568
|
||||
3934761097
|
||||
3925844952
|
||||
3602607914
|
||||
3741857686
|
||||
3732482931
|
||||
3729783593
|
||||
3635250094
|
||||
3706648118
|
||||
3853167484
|
||||
3916845229
|
||||
3983629794
|
||||
3943670196
|
||||
3867725730
|
||||
3548946522
|
||||
3696888472
|
||||
3729664873
|
||||
3750609657
|
||||
3702688827
|
||||
3994465571
|
||||
3666995886
|
||||
3881628312
|
||||
3720334387
|
||||
3933568515
|
||||
3693178186
|
||||
3888954122
|
||||
3961471376
|
||||
3937112215
|
||||
3936691623
|
||||
3915403037
|
||||
3693727226
|
||||
3917170944
|
||||
3930555435
|
||||
3933184551
|
||||
3931662845
|
||||
3940295083
|
||||
1033014609""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_40_regular = sum(dim40_regular)
|
||||
|
||||
# dimentions = ("3-dementions", "6-dementions", "40-dementions")
|
||||
# comparitors = {
|
||||
# 'FAT-Pointer based range address': (dmin_3_physically_contigous, dim_6_contigous, dim_40_contigous),
|
||||
# 'System Allocator': (dmin_3_regular, dim_6_regular, dim_40_regular),
|
||||
# }
|
||||
|
||||
# x = np.arange(len(dimentions)) # the label locations
|
||||
# width = 0.25 # the width of the bars
|
||||
# multiplier = 0
|
||||
|
||||
# fig, ax = plt.subplots(layout='constrained')
|
||||
|
||||
# for attribute, measurement in comparitors.items():
|
||||
# offset = width * multiplier
|
||||
# rects = ax.bar(x + offset, measurement, width, label=attribute)
|
||||
# ax.bar_label(rects, padding=3)
|
||||
# multiplier += 1
|
||||
|
||||
# # Add some text for labels, title and custom x-axis tick labels, etc.
|
||||
# ax.set_ylabel('DTLB L1 reads')
|
||||
# ax.set_title('L1D_TLB')
|
||||
# ax.set_xticks(x + width, dimentions)
|
||||
# ax.legend(loc='upper left', ncols=2)
|
||||
# ax.set_ylim(0, 250)
|
||||
|
||||
# plt.show()
|
||||
|
||||
# Sample data
|
||||
categories = ['Size 200', 'Size 10000']
|
||||
group_1 = [dmin_3_physically_contigous, dim_6_contigous]
|
||||
group_2 = [dmin_3_regular, dim_6_regular]
|
||||
|
||||
# Number of categories
|
||||
n = len(categories)
|
||||
|
||||
# Create a bar width
|
||||
bar_width = 0.25
|
||||
|
||||
# Create an array with the positions of the bars on the x-axis
|
||||
r1 = np.arange(n)
|
||||
r2 = [x + bar_width for x in r1]
|
||||
# r3 = [x + bar_width for x in r2]
|
||||
|
||||
# Create the grouped bar graph
|
||||
plt.bar(r1, group_1, color='b', width=bar_width, edgecolor='grey', label='FAT-Pointer based range based addresses')
|
||||
plt.bar(r2, group_2, color='g', width=bar_width, edgecolor='grey', label='System memory allocator')
|
||||
# plt.bar(r3, group_3, color='r', width=bar_width, edgecolor='grey', label='Group 3')
|
||||
|
||||
# Add xticks on the middle of the grouped bars
|
||||
plt.xlabel('Size of Matrix COZ MatrixMultiply', fontweight='bold')
|
||||
plt.xticks([r + bar_width for r in range(n)], categories)
|
||||
|
||||
# Add labels and title
|
||||
plt.ylabel('DTLB L1 reads', fontweight='bold')
|
||||
plt.title('Sum of DTLB L1 reads')
|
||||
|
||||
# Add a legend
|
||||
plt.legend()
|
||||
|
||||
# Show the plot
|
||||
# plt.show()
|
||||
plt.savefig('l1-miss-matrixmultiply.png')
|
||||
395
pyplot/Kmeans/Sum-Graph/MatrixMultiply/l1-tlb.py
Normal file
@@ -0,0 +1,395 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
dim3_physically_contigous = np.array([399876441])
|
||||
|
||||
dmin_3_physically_contigous = sum(dim3_physically_contigous)
|
||||
|
||||
dim3_regular = np.array([380500198])
|
||||
|
||||
dmin_3_regular = sum(dim3_regular)
|
||||
|
||||
dim6_contigous = np.array([int(x) for x in """0
|
||||
0
|
||||
3182857841
|
||||
2676269451
|
||||
3632836262
|
||||
5086931936
|
||||
4921595689
|
||||
2380537223""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_6_contigous = sum(dim6_contigous)
|
||||
|
||||
dim6_regular = np.array([int(x) for x in """0
|
||||
1662045387
|
||||
2568704269
|
||||
0
|
||||
5404906944
|
||||
4946152426
|
||||
5097512016
|
||||
1934071481""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_6_regular = sum(dim6_regular)
|
||||
|
||||
dim40_contigous = np.array([int(x) for x in """0
|
||||
0
|
||||
4417755799
|
||||
0
|
||||
2587126745
|
||||
0
|
||||
1907452696
|
||||
0
|
||||
4470211896
|
||||
1490535856
|
||||
1488268722
|
||||
1492406027
|
||||
0
|
||||
0
|
||||
3020774732
|
||||
1502998186
|
||||
1495229685
|
||||
1513519294
|
||||
2943026264
|
||||
1500269058
|
||||
52149259
|
||||
1496657426
|
||||
2937658244
|
||||
1494297672
|
||||
74030192
|
||||
1501455826
|
||||
1495883230
|
||||
2888428091
|
||||
1482110806
|
||||
150844250
|
||||
2836859365
|
||||
0
|
||||
2995913912
|
||||
0
|
||||
2986402746
|
||||
0
|
||||
1637257243
|
||||
2848563352
|
||||
336366333
|
||||
0
|
||||
2955346561
|
||||
1582901866
|
||||
1494805041
|
||||
1486848958
|
||||
1575414883
|
||||
0
|
||||
3006540619
|
||||
1651961484
|
||||
1495211562
|
||||
1418961073
|
||||
2413046393
|
||||
0
|
||||
2310831892
|
||||
1545685148
|
||||
1494591413
|
||||
1494394190
|
||||
1495772460
|
||||
1497140001
|
||||
1506995279
|
||||
1502064624
|
||||
1503212470
|
||||
1494161247
|
||||
1496442614
|
||||
1494353921
|
||||
1496910315
|
||||
1490640984
|
||||
2120990326
|
||||
1496964537
|
||||
1503480472
|
||||
0
|
||||
2487680099
|
||||
1511772203
|
||||
1990506585
|
||||
1085
|
||||
1495006176
|
||||
2981033808
|
||||
1497807398
|
||||
1499905019
|
||||
0
|
||||
2992809338
|
||||
1499678220
|
||||
1503422919
|
||||
1432738350
|
||||
1572013300
|
||||
1488687745
|
||||
1491956406
|
||||
1493056793
|
||||
1490487590
|
||||
1494885596
|
||||
0
|
||||
2981312602
|
||||
1495995022
|
||||
1494473531
|
||||
91287100
|
||||
2756251323
|
||||
230008646
|
||||
1491190180
|
||||
1430538651
|
||||
1583249575
|
||||
1576908184
|
||||
1332064486
|
||||
0
|
||||
3175178358
|
||||
0
|
||||
3080574208
|
||||
2649916724
|
||||
1275899646
|
||||
0
|
||||
2878955633""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_40_contigous = sum(dim40_contigous)
|
||||
|
||||
dim40_regular = np.array([int(x) for x in """0
|
||||
2873345808
|
||||
0
|
||||
0
|
||||
4568364039
|
||||
0
|
||||
2962578326
|
||||
1482026881
|
||||
1482959662
|
||||
1283314470
|
||||
1696338408
|
||||
1493064117
|
||||
1496278352
|
||||
1493690192
|
||||
1490808431
|
||||
1482241102
|
||||
1485073059
|
||||
1493488736
|
||||
1493734395
|
||||
1494051944
|
||||
1491925626
|
||||
1490400073
|
||||
1492918850
|
||||
0
|
||||
2989795422
|
||||
0
|
||||
2981131303
|
||||
1490971079
|
||||
1490457922
|
||||
0
|
||||
2972098981
|
||||
148614774
|
||||
0
|
||||
0
|
||||
4865632909
|
||||
1257951927
|
||||
1588161938
|
||||
1785512571
|
||||
0
|
||||
0
|
||||
0
|
||||
6770405012
|
||||
0
|
||||
2348949300
|
||||
0
|
||||
0
|
||||
4570645310
|
||||
0
|
||||
2824636217
|
||||
1762646952
|
||||
0
|
||||
2891891542
|
||||
1579360612
|
||||
0
|
||||
0
|
||||
4915926092
|
||||
1496744037
|
||||
1495870886
|
||||
1497206544
|
||||
1287107800
|
||||
0
|
||||
3203518565
|
||||
0
|
||||
2992849786
|
||||
0
|
||||
2975114733
|
||||
1481666721
|
||||
686803
|
||||
2988542677
|
||||
1496054096
|
||||
1496578264
|
||||
1491746836
|
||||
1492851059
|
||||
1497143785
|
||||
1495192565
|
||||
1500194130
|
||||
0
|
||||
1637919784
|
||||
2854243731
|
||||
0
|
||||
2366222238
|
||||
2128844017
|
||||
0
|
||||
1818736204
|
||||
2676149826
|
||||
1497854865
|
||||
962431460
|
||||
0
|
||||
3539793686
|
||||
1024018613
|
||||
1489816277
|
||||
0
|
||||
3158434789
|
||||
1369912046
|
||||
1491311601
|
||||
1575013089
|
||||
0
|
||||
0
|
||||
4446661541
|
||||
1416884482
|
||||
1710611180
|
||||
1757241245
|
||||
1233889541
|
||||
1437873524
|
||||
0
|
||||
3280246404
|
||||
0
|
||||
2995489571
|
||||
1541069762
|
||||
3930514690
|
||||
3863607919
|
||||
3597368896
|
||||
3734892809
|
||||
3944232184
|
||||
3709601722
|
||||
3642560210
|
||||
3625597517
|
||||
3920215743
|
||||
3927141046
|
||||
4000023820
|
||||
3916655686
|
||||
3951797607
|
||||
3952120224
|
||||
3689180680
|
||||
3587372425
|
||||
3615616989
|
||||
3726388814
|
||||
3929746604
|
||||
3929801334
|
||||
3942019114
|
||||
3648646073
|
||||
3944755905
|
||||
3929255746
|
||||
3668055728
|
||||
3672894376
|
||||
3844013718
|
||||
3910779810
|
||||
3940544740
|
||||
4006830187
|
||||
3928198267
|
||||
3531412165
|
||||
3818215173
|
||||
3738150454
|
||||
3604332393
|
||||
3650311511
|
||||
3807369864
|
||||
3826302554
|
||||
3775371186
|
||||
3710423568
|
||||
3934761097
|
||||
3925844952
|
||||
3602607914
|
||||
3741857686
|
||||
3732482931
|
||||
3729783593
|
||||
3635250094
|
||||
3706648118
|
||||
3853167484
|
||||
3916845229
|
||||
3983629794
|
||||
3943670196
|
||||
3867725730
|
||||
3548946522
|
||||
3696888472
|
||||
3729664873
|
||||
3750609657
|
||||
3702688827
|
||||
3994465571
|
||||
3666995886
|
||||
3881628312
|
||||
3720334387
|
||||
3933568515
|
||||
3693178186
|
||||
3888954122
|
||||
3961471376
|
||||
3937112215
|
||||
3936691623
|
||||
3915403037
|
||||
3693727226
|
||||
3917170944
|
||||
3930555435
|
||||
3933184551
|
||||
3931662845
|
||||
3940295083
|
||||
1033014609""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_40_regular = sum(dim40_regular)
|
||||
|
||||
# dimentions = ("3-dementions", "6-dementions", "40-dementions")
|
||||
# comparitors = {
|
||||
# 'FAT-Pointer based range address': (dmin_3_physically_contigous, dim_6_contigous, dim_40_contigous),
|
||||
# 'System Allocator': (dmin_3_regular, dim_6_regular, dim_40_regular),
|
||||
# }
|
||||
|
||||
# x = np.arange(len(dimentions)) # the label locations
|
||||
# width = 0.25 # the width of the bars
|
||||
# multiplier = 0
|
||||
|
||||
# fig, ax = plt.subplots(layout='constrained')
|
||||
|
||||
# for attribute, measurement in comparitors.items():
|
||||
# offset = width * multiplier
|
||||
# rects = ax.bar(x + offset, measurement, width, label=attribute)
|
||||
# ax.bar_label(rects, padding=3)
|
||||
# multiplier += 1
|
||||
|
||||
# # Add some text for labels, title and custom x-axis tick labels, etc.
|
||||
# ax.set_ylabel('DTLB L1 reads')
|
||||
# ax.set_title('L1D_TLB')
|
||||
# ax.set_xticks(x + width, dimentions)
|
||||
# ax.legend(loc='upper left', ncols=2)
|
||||
# ax.set_ylim(0, 250)
|
||||
|
||||
# plt.show()
|
||||
|
||||
# Sample data
|
||||
categories = ['Size 200', 'Size 10000']
|
||||
group_1 = [dmin_3_physically_contigous, dim_6_contigous]
|
||||
group_2 = [dmin_3_regular, dim_6_regular]
|
||||
|
||||
# Number of categories
|
||||
n = len(categories)
|
||||
|
||||
# Create a bar width
|
||||
bar_width = 0.25
|
||||
|
||||
# Create an array with the positions of the bars on the x-axis
|
||||
r1 = np.arange(n)
|
||||
r2 = [x + bar_width for x in r1]
|
||||
# r3 = [x + bar_width for x in r2]
|
||||
|
||||
# Create the grouped bar graph
|
||||
plt.bar(r1, group_1, color='b', width=bar_width, edgecolor='grey', label='FAT-Pointer based range based addresses')
|
||||
plt.bar(r2, group_2, color='g', width=bar_width, edgecolor='grey', label='System memory allocator')
|
||||
# plt.bar(r3, group_3, color='r', width=bar_width, edgecolor='grey', label='Group 3')
|
||||
|
||||
# Add xticks on the middle of the grouped bars
|
||||
plt.xlabel('Size of Matrix COZ MatrixMultiply', fontweight='bold')
|
||||
plt.xticks([r + bar_width for r in range(n)], categories)
|
||||
|
||||
# Add labels and title
|
||||
plt.ylabel('DTLB L1 reads', fontweight='bold')
|
||||
plt.title('Sum of DTLB L1 reads')
|
||||
|
||||
# Add a legend
|
||||
plt.legend()
|
||||
|
||||
# Show the plot
|
||||
# plt.show()
|
||||
plt.savefig('l1-tlb-matrixmultiply.png')
|
||||
397
pyplot/Kmeans/Sum-Graph/MatrixMultiply/l2-tlb.py
Normal file
@@ -0,0 +1,397 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
dim3_physically_contigous = np.array([3013349])
|
||||
|
||||
dmin_3_physically_contigous = sum(dim3_physically_contigous)
|
||||
|
||||
dim3_regular = np.array([2946541])
|
||||
|
||||
dmin_3_regular = sum(dim3_regular)
|
||||
|
||||
dim6_contigous = np.array([int(x) for x in """13933616
|
||||
0
|
||||
0
|
||||
55855105
|
||||
177840659
|
||||
380285140
|
||||
292719568
|
||||
163746827""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_6_contigous = sum(dim6_contigous)
|
||||
|
||||
dim6_regular = np.array([int(x) for x in """0
|
||||
0
|
||||
48672313
|
||||
0
|
||||
243876172
|
||||
332240431
|
||||
283300132
|
||||
151566198""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
|
||||
dim_6_regular = sum(dim6_regular)
|
||||
|
||||
dim40_contigous = np.array([int(x) for x in """11074868
|
||||
17796846
|
||||
0
|
||||
42335753
|
||||
0
|
||||
42578037
|
||||
17369088
|
||||
0
|
||||
0
|
||||
0
|
||||
82499577
|
||||
0
|
||||
0
|
||||
0
|
||||
82928349
|
||||
19903822
|
||||
20322217
|
||||
20196113
|
||||
20575304
|
||||
19769508
|
||||
0
|
||||
40692176
|
||||
0
|
||||
35388820
|
||||
0
|
||||
46400139
|
||||
20884653
|
||||
0
|
||||
40479127
|
||||
20938047
|
||||
20020758
|
||||
21590212
|
||||
17955844
|
||||
1895112
|
||||
24707564
|
||||
35247723
|
||||
19854386
|
||||
19994871
|
||||
0
|
||||
0
|
||||
39958384
|
||||
39619071
|
||||
19821971
|
||||
0
|
||||
39754647
|
||||
0
|
||||
39873651
|
||||
19521815
|
||||
20209862
|
||||
20048932
|
||||
20231348
|
||||
20214678
|
||||
0
|
||||
41152963
|
||||
6223168
|
||||
16818928
|
||||
37877594
|
||||
12893970
|
||||
21214360
|
||||
0
|
||||
32124557
|
||||
20718531
|
||||
0
|
||||
40755758
|
||||
35334046
|
||||
0
|
||||
41293476
|
||||
20648826
|
||||
0
|
||||
20479335
|
||||
21645864
|
||||
28444433
|
||||
0
|
||||
34204784
|
||||
36576871
|
||||
0
|
||||
0
|
||||
0
|
||||
76911224
|
||||
20723929
|
||||
14021956
|
||||
28392009
|
||||
26330087
|
||||
0
|
||||
41195363
|
||||
9598203
|
||||
28499682
|
||||
0
|
||||
34404203
|
||||
29859217
|
||||
20539283
|
||||
20714755
|
||||
20553408
|
||||
0
|
||||
20889230
|
||||
32963850
|
||||
7949901
|
||||
33765967
|
||||
28019151
|
||||
13062566
|
||||
26967792
|
||||
0
|
||||
0
|
||||
62723768
|
||||
15030483
|
||||
20277594
|
||||
0
|
||||
41160435
|
||||
0
|
||||
28127160""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_40_contigous = sum(dim40_contigous)
|
||||
|
||||
dim40_regular = np.array([int(x) for x in """2780755
|
||||
0
|
||||
40650126
|
||||
19973207
|
||||
0
|
||||
45212438
|
||||
14734736
|
||||
21512132
|
||||
20024828
|
||||
17015744
|
||||
21012868
|
||||
24889120
|
||||
0
|
||||
40307315
|
||||
0
|
||||
40543393
|
||||
19447333
|
||||
16752820
|
||||
19802564
|
||||
19717349
|
||||
0
|
||||
32838418
|
||||
7313016
|
||||
36828882
|
||||
19421922
|
||||
19221311
|
||||
0
|
||||
36504040
|
||||
19221867
|
||||
19111822
|
||||
4391041
|
||||
32495439
|
||||
0
|
||||
23803968
|
||||
18651515
|
||||
0
|
||||
37881224
|
||||
29985095
|
||||
4176134
|
||||
18086488
|
||||
18628963
|
||||
0
|
||||
0
|
||||
0
|
||||
77724802
|
||||
0
|
||||
37326656
|
||||
0
|
||||
37118376
|
||||
17904262
|
||||
19199261
|
||||
19094655
|
||||
18162476
|
||||
19841950
|
||||
18493958
|
||||
19955899
|
||||
15237090
|
||||
18940111
|
||||
16777309
|
||||
19653443
|
||||
17616389
|
||||
1417668
|
||||
23258907
|
||||
0
|
||||
38260471
|
||||
22608071
|
||||
13460148
|
||||
19002183
|
||||
16931931
|
||||
19518969
|
||||
12655691
|
||||
18821392
|
||||
19084457
|
||||
0
|
||||
38850414
|
||||
0
|
||||
38673127
|
||||
0
|
||||
39578640
|
||||
0
|
||||
38841607
|
||||
0
|
||||
38340444
|
||||
0
|
||||
0
|
||||
59014396
|
||||
13524903
|
||||
19465492
|
||||
25539086
|
||||
19637297
|
||||
5254742
|
||||
27355676
|
||||
24079140
|
||||
19975996
|
||||
19226004
|
||||
16878651
|
||||
0
|
||||
0
|
||||
62518013
|
||||
0
|
||||
0
|
||||
39742980
|
||||
39872968
|
||||
18698312
|
||||
19633681
|
||||
19652322
|
||||
18131608
|
||||
0
|
||||
39807132
|
||||
84805863
|
||||
205063169
|
||||
207026601
|
||||
207353408
|
||||
208077229
|
||||
223112773
|
||||
232033395
|
||||
210898122
|
||||
200158459
|
||||
203639347
|
||||
230644673
|
||||
237184228
|
||||
230544844
|
||||
234041882
|
||||
225077016
|
||||
208652470
|
||||
206710725
|
||||
207688549
|
||||
208921986
|
||||
237145817
|
||||
216789158
|
||||
207248978
|
||||
206867158
|
||||
226521698
|
||||
243656316
|
||||
236022389
|
||||
216914633
|
||||
207163647
|
||||
207752568
|
||||
206269550
|
||||
207422862
|
||||
240605554
|
||||
220855937
|
||||
207420877
|
||||
210468984
|
||||
207768015
|
||||
250267485
|
||||
212878277
|
||||
209949240
|
||||
207411078
|
||||
208223656
|
||||
210492256
|
||||
224683374
|
||||
242489309
|
||||
231567088
|
||||
211246599
|
||||
208066123
|
||||
208277683
|
||||
228206741
|
||||
229508886
|
||||
207161109
|
||||
206156489
|
||||
214927236
|
||||
231786596
|
||||
232625811
|
||||
230571602
|
||||
209516467
|
||||
219150327
|
||||
228216552
|
||||
206438524
|
||||
220447351
|
||||
219045513
|
||||
230838177
|
||||
216657765
|
||||
205321014
|
||||
207699856
|
||||
219191131
|
||||
236171517
|
||||
225724156
|
||||
208329895
|
||||
210489462
|
||||
211206457
|
||||
207353005
|
||||
230789569
|
||||
231425162
|
||||
43897100""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_40_regular = sum(dim40_regular)
|
||||
|
||||
# dimentions = ("3-dementions", "6-dementions", "40-dementions")
|
||||
# comparitors = {
|
||||
# 'FAT-Pointer based range address': (dmin_3_physically_contigous, dim_6_contigous, dim_40_contigous),
|
||||
# 'System Allocator': (dmin_3_regular, dim_6_regular, dim_40_regular),
|
||||
# }
|
||||
|
||||
# x = np.arange(len(dimentions)) # the label locations
|
||||
# width = 0.25 # the width of the bars
|
||||
# multiplier = 0
|
||||
|
||||
# fig, ax = plt.subplots(layout='constrained')
|
||||
|
||||
# for attribute, measurement in comparitors.items():
|
||||
# offset = width * multiplier
|
||||
# rects = ax.bar(x + offset, measurement, width, label=attribute)
|
||||
# ax.bar_label(rects, padding=3)
|
||||
# multiplier += 1
|
||||
|
||||
# # Add some text for labels, title and custom x-axis tick labels, etc.
|
||||
# ax.set_ylabel('DTLB L1 reads')
|
||||
# ax.set_title('L1D_TLB')
|
||||
# ax.set_xticks(x + width, dimentions)
|
||||
# ax.legend(loc='upper left', ncols=2)
|
||||
# ax.set_ylim(0, 250)
|
||||
|
||||
# plt.show()
|
||||
|
||||
# Sample data
|
||||
categories = ['Size 200', 'Size 10000']
|
||||
group_1 = [dmin_3_physically_contigous, dim_6_contigous]
|
||||
group_2 = [dmin_3_regular, dim_6_regular]
|
||||
|
||||
# Number of categories
|
||||
n = len(categories)
|
||||
|
||||
# Create a bar width
|
||||
bar_width = 0.25
|
||||
|
||||
# Create an array with the positions of the bars on the x-axis
|
||||
r1 = np.arange(n)
|
||||
r2 = [x + bar_width for x in r1]
|
||||
# r3 = [x + bar_width for x in r2]
|
||||
|
||||
# Create the grouped bar graph
|
||||
plt.bar(r1, group_1, color='b', width=bar_width, edgecolor='grey', label='FAT-Pointer based range based addresses')
|
||||
plt.bar(r2, group_2, color='g', width=bar_width, edgecolor='grey', label='System memory allocator')
|
||||
# plt.bar(r3, group_3, color='r', width=bar_width, edgecolor='grey', label='Group 3')
|
||||
|
||||
# Add xticks on the middle of the grouped bars
|
||||
plt.xlabel('Size of Matrix COZ MatrixMultiply', fontweight='bold')
|
||||
plt.xticks([r + bar_width for r in range(n)], categories)
|
||||
|
||||
# Add labels and title
|
||||
plt.ylabel('DTLB L2 reads', fontweight='bold')
|
||||
plt.title('Sum of DTLB L2 reads')
|
||||
|
||||
# Add a legend
|
||||
plt.legend()
|
||||
|
||||
# Show the plot
|
||||
# plt.show()
|
||||
plt.savefig('l2-tlb-matrixmultiply.png')
|
||||
393
pyplot/Kmeans/Sum-Graph/MatrixMultiply/tlb-walk.py
Normal file
@@ -0,0 +1,393 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
dim3_physically_contigous = np.array([26005])
|
||||
|
||||
dmin_3_physically_contigous = sum(dim3_physically_contigous)
|
||||
|
||||
dim3_regular = np.array([8517])
|
||||
|
||||
dmin_3_regular = sum(dim3_regular)
|
||||
|
||||
dim6_contigous = np.array([int(x) for x in """0
|
||||
2722
|
||||
0
|
||||
0
|
||||
84290
|
||||
185921
|
||||
251521
|
||||
356452""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_6_contigous = sum(dim6_contigous)
|
||||
|
||||
dim6_regular = np.array([int(x) for x in """1310
|
||||
1658
|
||||
86
|
||||
0
|
||||
73097
|
||||
171472
|
||||
237158
|
||||
161478""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
|
||||
dim_6_regular = sum(dim6_regular)
|
||||
|
||||
dim40_contigous = np.array([int(x) for x in """1072
|
||||
1566
|
||||
0
|
||||
775
|
||||
564
|
||||
574
|
||||
0
|
||||
0
|
||||
1842
|
||||
397
|
||||
832
|
||||
0
|
||||
1143
|
||||
0
|
||||
1132
|
||||
0
|
||||
0
|
||||
3478
|
||||
335
|
||||
1181
|
||||
0
|
||||
1451
|
||||
0
|
||||
0
|
||||
2456
|
||||
914
|
||||
566
|
||||
208
|
||||
1323
|
||||
0
|
||||
1341
|
||||
0
|
||||
0
|
||||
0
|
||||
2800
|
||||
869
|
||||
0
|
||||
1624
|
||||
852
|
||||
0
|
||||
1444
|
||||
78
|
||||
0
|
||||
1165
|
||||
242
|
||||
0
|
||||
0
|
||||
1436
|
||||
0
|
||||
1656
|
||||
1295
|
||||
672
|
||||
0
|
||||
2124
|
||||
689
|
||||
247
|
||||
974
|
||||
196
|
||||
664
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
4571
|
||||
411
|
||||
1108
|
||||
0
|
||||
1855
|
||||
779
|
||||
0
|
||||
0
|
||||
0
|
||||
3973
|
||||
0
|
||||
0
|
||||
2126
|
||||
1090
|
||||
0
|
||||
0
|
||||
0
|
||||
1455
|
||||
868
|
||||
834
|
||||
0
|
||||
2252
|
||||
743
|
||||
0
|
||||
0
|
||||
0
|
||||
2867
|
||||
576
|
||||
528
|
||||
737
|
||||
1279
|
||||
753
|
||||
0
|
||||
0
|
||||
1469
|
||||
709
|
||||
0
|
||||
951
|
||||
1011
|
||||
560
|
||||
923
|
||||
389
|
||||
681
|
||||
887
|
||||
0
|
||||
1091""".replace(' ',',').replace('\n','').split(",")])
|
||||
dim_40_contigous = sum(dim40_contigous)
|
||||
|
||||
dim40_regular = np.array([int(x) for x in """2077
|
||||
0
|
||||
2240
|
||||
974
|
||||
400
|
||||
0
|
||||
1949
|
||||
0
|
||||
353
|
||||
0
|
||||
2136
|
||||
1292
|
||||
1150
|
||||
1080
|
||||
1029
|
||||
188
|
||||
16
|
||||
9401
|
||||
3108
|
||||
0
|
||||
12850
|
||||
2972
|
||||
0
|
||||
13417
|
||||
4015
|
||||
0
|
||||
0
|
||||
12179
|
||||
708
|
||||
4434
|
||||
5515
|
||||
105
|
||||
0
|
||||
0
|
||||
52251
|
||||
8327
|
||||
0
|
||||
0
|
||||
0
|
||||
7628
|
||||
0
|
||||
6047
|
||||
2796
|
||||
2505
|
||||
1949
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
14301
|
||||
0
|
||||
5171
|
||||
3362
|
||||
3772
|
||||
0
|
||||
27162
|
||||
15974
|
||||
5284
|
||||
11553
|
||||
0
|
||||
24698
|
||||
0
|
||||
14835
|
||||
0
|
||||
21593
|
||||
664
|
||||
5721
|
||||
12945
|
||||
0
|
||||
13774
|
||||
0
|
||||
14722
|
||||
1465
|
||||
0
|
||||
27655
|
||||
2332
|
||||
4084
|
||||
33813
|
||||
0
|
||||
9790
|
||||
0
|
||||
50326
|
||||
5316
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
9760
|
||||
4192
|
||||
1552
|
||||
7241
|
||||
3216
|
||||
4888
|
||||
8667
|
||||
28500
|
||||
8415
|
||||
4523
|
||||
1449
|
||||
4652
|
||||
0
|
||||
7625
|
||||
0
|
||||
13775
|
||||
0
|
||||
1897
|
||||
4708
|
||||
0
|
||||
12225
|
||||
4482759
|
||||
191711306
|
||||
235410343
|
||||
173845602
|
||||
242711520
|
||||
154862574
|
||||
192747518
|
||||
220667551
|
||||
275602208
|
||||
184073481
|
||||
198073425
|
||||
227482742
|
||||
187971748
|
||||
183689903
|
||||
187178845
|
||||
186674013
|
||||
207741123
|
||||
233177167
|
||||
221368814
|
||||
183933427
|
||||
181175654
|
||||
204068107
|
||||
228269124
|
||||
205027178
|
||||
209400883
|
||||
187840131
|
||||
188293011
|
||||
221927087
|
||||
232807458
|
||||
188215220
|
||||
180783387
|
||||
216711542
|
||||
208036998
|
||||
214266374
|
||||
186414281
|
||||
180185139
|
||||
185237868
|
||||
191677316
|
||||
183911791
|
||||
183803795
|
||||
224964126
|
||||
204113022
|
||||
210381502
|
||||
225585571
|
||||
220223453
|
||||
226214857
|
||||
204932647
|
||||
184864540
|
||||
217262003
|
||||
202414930
|
||||
191948700
|
||||
193400960
|
||||
181280109
|
||||
180323521
|
||||
184002482
|
||||
207777617
|
||||
222940234
|
||||
189422853
|
||||
186182495
|
||||
186261124
|
||||
181304280
|
||||
192816961
|
||||
184117119
|
||||
209667712
|
||||
240951856
|
||||
219942014
|
||||
221564848
|
||||
192926621
|
||||
181690338
|
||||
183097907
|
||||
186087016
|
||||
184347616
|
||||
180377265
|
||||
199009737
|
||||
182802614""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_40_regular = sum(dim40_regular)
|
||||
|
||||
# dimentions = ("3-dementions", "6-dementions", "40-dementions")
|
||||
# comparitors = {
|
||||
# 'FAT-Pointer based range address': (dmin_3_physically_contigous, dim_6_contigous, dim_40_contigous),
|
||||
# 'System Allocator': (dmin_3_regular, dim_6_regular, dim_40_regular),
|
||||
# }
|
||||
|
||||
# x = np.arange(len(dimentions)) # the label locations
|
||||
# width = 0.25 # the width of the bars
|
||||
# multiplier = 0
|
||||
|
||||
# fig, ax = plt.subplots(layout='constrained')
|
||||
|
||||
# for attribute, measurement in comparitors.items():
|
||||
# offset = width * multiplier
|
||||
# rects = ax.bar(x + offset, measurement, width, label=attribute)
|
||||
# ax.bar_label(rects, padding=3)
|
||||
# multiplier += 1
|
||||
|
||||
# # Add some text for labels, title and custom x-axis tick labels, etc.
|
||||
# ax.set_ylabel('DTLB L1 reads')
|
||||
# ax.set_title('L1D_TLB')
|
||||
# ax.set_xticks(x + width, dimentions)
|
||||
# ax.legend(loc='upper left', ncols=2)
|
||||
# ax.set_ylim(0, 250)
|
||||
|
||||
# plt.show()
|
||||
|
||||
# Sample data
|
||||
categories = ['Size 200', 'Size 10000']
|
||||
group_1 = [dmin_3_physically_contigous, dim_6_contigous]
|
||||
group_2 = [dmin_3_regular, dim_6_regular]
|
||||
|
||||
# Number of categories
|
||||
n = len(categories)
|
||||
|
||||
# Create a bar width
|
||||
bar_width = 0.25
|
||||
|
||||
# Create an array with the positions of the bars on the x-axis
|
||||
r1 = np.arange(n)
|
||||
r2 = [x + bar_width for x in r1]
|
||||
# r3 = [x + bar_width for x in r2]
|
||||
|
||||
# Create the grouped bar graph
|
||||
plt.bar(r1, group_1, color='b', width=bar_width, edgecolor='grey', label='FAT-Pointer based range based addresses')
|
||||
plt.bar(r2, group_2, color='g', width=bar_width, edgecolor='grey', label='System memory allocator')
|
||||
# plt.bar(r3, group_3, color='r', width=bar_width, edgecolor='grey', label='Group 3')
|
||||
|
||||
# Add xticks on the middle of the grouped bars
|
||||
plt.xlabel('Size of Matrix COZ MatrixMultiply', fontweight='bold')
|
||||
plt.xticks([r + bar_width for r in range(n)], categories)
|
||||
|
||||
# Add labels and title
|
||||
plt.ylabel('DTLB L2 reads', fontweight='bold')
|
||||
plt.title('Sum of DTLB L2 reads')
|
||||
|
||||
# Add a legend
|
||||
plt.legend()
|
||||
|
||||
# Show the plot
|
||||
# plt.show()
|
||||
plt.savefig('tlb-walk-matrixmultiply.png')
|
||||
0
pyplot/Kmeans/Sum-Graph/dtlb-walk.py
Normal file
0
pyplot/Kmeans/Sum-Graph/l1-cache-miss.py
Normal file
BIN
pyplot/Kmeans/Sum-Graph/l1-miss-Histogram.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
pyplot/Kmeans/Sum-Graph/l1-miss-kmeans.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
pyplot/Kmeans/Sum-Graph/l1-miss-matrixmultiply.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
pyplot/Kmeans/Sum-Graph/l1-tlb-Histogram.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
pyplot/Kmeans/Sum-Graph/l1-tlb-kmeans.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
pyplot/Kmeans/Sum-Graph/l1-tlb-matrixmultiply.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
516
pyplot/Kmeans/Sum-Graph/l1-tlb.py
Normal file
@@ -0,0 +1,516 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
dim3_physically_contigous = np.array([1944100892,
|
||||
1929198745,
|
||||
2147407618,
|
||||
2361683504,
|
||||
2229290045,
|
||||
1936107919,
|
||||
1950196981,
|
||||
2316564611,
|
||||
2415777784,
|
||||
2251930639,
|
||||
1917048962,
|
||||
2122919883,
|
||||
2305445935,
|
||||
2216085132,
|
||||
2061970506,
|
||||
2077573288,
|
||||
2415427574])
|
||||
|
||||
dmin_3_physically_contigous = sum(dim3_physically_contigous)
|
||||
|
||||
dim3_regular = np.array([2001205195,
|
||||
2037350408,
|
||||
2077998800,
|
||||
2064361816,
|
||||
2370004326,
|
||||
2366505116,
|
||||
2433485997,
|
||||
2388982491,
|
||||
2622710065,
|
||||
2231849577,
|
||||
2213896383,
|
||||
1971144730,
|
||||
2279336623,
|
||||
2384236727,
|
||||
2159066740,
|
||||
1872922315,
|
||||
2046840068])
|
||||
|
||||
dmin_3_regular = sum(dim3_regular)
|
||||
|
||||
dim6_contigous = np.array([2472219435,
|
||||
3473628174,
|
||||
3146805964,
|
||||
2747609863,
|
||||
3624063096,
|
||||
2299770299,
|
||||
2731333935,
|
||||
2500798504,
|
||||
2279879638,
|
||||
3989040226,
|
||||
2595662999,
|
||||
3715651239,
|
||||
3293638078,
|
||||
2723808934,
|
||||
4183888040,
|
||||
2437497235,
|
||||
3262957061,
|
||||
3260647309,
|
||||
2145129129,
|
||||
3874909746,
|
||||
2471935689,
|
||||
3143457211,
|
||||
3450920659,
|
||||
2570835020,
|
||||
4197209649,
|
||||
3325832132,
|
||||
3041911087,
|
||||
3848617519,
|
||||
1973739208,
|
||||
3773139796,
|
||||
2737410930,
|
||||
2907858299,
|
||||
3813970823,
|
||||
2856501924,
|
||||
3505228599,
|
||||
2432178891,
|
||||
2854895470,
|
||||
3602152695,
|
||||
2576232334
|
||||
])
|
||||
|
||||
dim_6_contigous = sum(dim6_contigous)
|
||||
|
||||
dim6_regular = np.array([3512147188,
|
||||
2931698338,
|
||||
3130637973,
|
||||
2799013235,
|
||||
3256184323,
|
||||
2992132432,
|
||||
3041359022,
|
||||
3094813437,
|
||||
3028071885,
|
||||
3380696386,
|
||||
3018331410,
|
||||
2899603552,
|
||||
3264907899,
|
||||
3002822837,
|
||||
3045671887,
|
||||
3119204499,
|
||||
2953573342,
|
||||
2963606839,
|
||||
2855193865,
|
||||
3043260399,
|
||||
2972252469,
|
||||
2503069946,
|
||||
2958386657,
|
||||
3033810534,
|
||||
3007362327,
|
||||
3026500873,
|
||||
3159826130,
|
||||
2504328570,
|
||||
4058464445,
|
||||
3218889301,
|
||||
3597912212,
|
||||
4181723542,
|
||||
3749432601,
|
||||
3654586898,
|
||||
3557679884,
|
||||
3322970044,
|
||||
3630597266,
|
||||
3130958213,
|
||||
1019981557])
|
||||
|
||||
dim_6_regular = sum(dim6_regular)
|
||||
|
||||
dim40_contigous = np.array([5271750211,
|
||||
5947977060,
|
||||
6406575235,
|
||||
5511255729,
|
||||
6423429240,
|
||||
5094278723,
|
||||
6242776302,
|
||||
6297848739,
|
||||
4590445845,
|
||||
6764711612,
|
||||
4610372742,
|
||||
5903997396,
|
||||
5747140551,
|
||||
6300303767,
|
||||
6640645385,
|
||||
4818280514,
|
||||
7823467298,
|
||||
5828843492,
|
||||
7619923263,
|
||||
7891459023,
|
||||
7387222066,
|
||||
7941541977,
|
||||
5433577677,
|
||||
7362215737,
|
||||
7053988636,
|
||||
7387626023,
|
||||
6945895832,
|
||||
4915107460,
|
||||
6745811484,
|
||||
7802741433,
|
||||
6808767570,
|
||||
7717542941,
|
||||
5557441777,
|
||||
6274197189,
|
||||
6839290749,
|
||||
6583819269,
|
||||
8175619486,
|
||||
7374930361,
|
||||
7496545906,
|
||||
5787152431,
|
||||
6970388902,
|
||||
7150342762,
|
||||
6374515148,
|
||||
7086240550,
|
||||
6014911926,
|
||||
6805497356,
|
||||
6787839300,
|
||||
6029236409,
|
||||
7045329429,
|
||||
5463327288,
|
||||
7023215119,
|
||||
6305754943,
|
||||
6040079901,
|
||||
7642513816,
|
||||
5399217904,
|
||||
7615536076,
|
||||
6947227611,
|
||||
6886438575,
|
||||
6525913645,
|
||||
5704035737,
|
||||
6001096710,
|
||||
4595121294,
|
||||
3891698114,
|
||||
5754907462,
|
||||
5581736391,
|
||||
8438909738,
|
||||
7281420759,
|
||||
9120364283,
|
||||
8975142455,
|
||||
6194068545,
|
||||
7645451782,
|
||||
6244703959,
|
||||
8436588830,
|
||||
8530553210,
|
||||
7617848374,
|
||||
8172082546,
|
||||
6812387244,
|
||||
8703432529,
|
||||
8613319990,
|
||||
7501293173,
|
||||
8216594940,
|
||||
5673006642,
|
||||
7168602771,
|
||||
7846317702,
|
||||
7094119540,
|
||||
8854752613,
|
||||
5455608081,
|
||||
8407641178,
|
||||
8338729110,
|
||||
8119635911,
|
||||
8981010962,
|
||||
7495479592,
|
||||
8554574662,
|
||||
8404630428,
|
||||
7519304345,
|
||||
7136761544,
|
||||
6528504686,
|
||||
8236643504,
|
||||
6831632676,
|
||||
8347118009,
|
||||
7641263754,
|
||||
5707359038,
|
||||
6748898177,
|
||||
6066310601,
|
||||
6943861727,
|
||||
7098959658,
|
||||
5212148705,
|
||||
6824640874,
|
||||
5583585529,
|
||||
8003156647,
|
||||
6415970122,
|
||||
6830508723,
|
||||
7041516118,
|
||||
6892969782,
|
||||
7126446374,
|
||||
8238572592,
|
||||
6702708346,
|
||||
6612046729,
|
||||
6731145590,
|
||||
7182643495,
|
||||
6166401716,
|
||||
6391553234,
|
||||
6638759846,
|
||||
5539008636,
|
||||
8406967616,
|
||||
7660149216,
|
||||
8431551979,
|
||||
8269144799,
|
||||
7734313131,
|
||||
8403891519,
|
||||
7258535328,
|
||||
7776937659,
|
||||
6064178686,
|
||||
5770876015,
|
||||
6982161319,
|
||||
5235604055,
|
||||
8101527192,
|
||||
6046956898,
|
||||
6827456214,
|
||||
7874652143,
|
||||
5025716700,
|
||||
7506539290,
|
||||
6196558003,
|
||||
6656436732,
|
||||
5956327575,
|
||||
4626891040,
|
||||
6350370528,
|
||||
5249154115,
|
||||
7566366652,
|
||||
7035152421,
|
||||
5894510533,
|
||||
7071341874,
|
||||
6305872895,
|
||||
7188950553,
|
||||
6518432441,
|
||||
5956890819,
|
||||
7441553601,
|
||||
6285032471,
|
||||
6776691911,
|
||||
5916079446,
|
||||
2984166525
|
||||
])
|
||||
|
||||
dim_40_contigous = sum(dim40_contigous)
|
||||
|
||||
dim40_regular = np.array([int(x) for x in """7320333725
|
||||
8041544574
|
||||
6359081713
|
||||
7676718410
|
||||
7408541973
|
||||
8549261018
|
||||
6455940864
|
||||
7638044083
|
||||
7852961154
|
||||
8105713414
|
||||
8099296359
|
||||
8588846829
|
||||
9264198897
|
||||
7866569227
|
||||
8241210929
|
||||
8266772980
|
||||
9025896341
|
||||
8543734536
|
||||
8436388827
|
||||
8593700407
|
||||
7449440289
|
||||
8297109440
|
||||
8213614706
|
||||
9250000125
|
||||
7852953217
|
||||
8789498566
|
||||
7365356677
|
||||
7663656239
|
||||
7930037512
|
||||
7141236610
|
||||
7737423168
|
||||
8306296388
|
||||
8693384934
|
||||
7433924991
|
||||
7878827892
|
||||
7671595716
|
||||
7150009037
|
||||
8591898274
|
||||
8167375582
|
||||
8355489369
|
||||
7173398288
|
||||
8066437344
|
||||
6594406377
|
||||
7699310879
|
||||
7502720090
|
||||
7940562130
|
||||
6738407130
|
||||
7831934111
|
||||
7551421487
|
||||
8597892604
|
||||
7251882911
|
||||
7497411167
|
||||
7623185317
|
||||
6601524684
|
||||
8174240923
|
||||
7425424118
|
||||
7689177096
|
||||
5496078729
|
||||
5695648325
|
||||
7096458210
|
||||
4812243000
|
||||
8265423889
|
||||
7406646505
|
||||
8401794675
|
||||
8029187256
|
||||
8262191583
|
||||
8410556911
|
||||
8215142659
|
||||
7977382227
|
||||
8090414614
|
||||
8943953292
|
||||
7822463926
|
||||
7959987169
|
||||
7730265183
|
||||
8736349787
|
||||
8143049809
|
||||
6640249510
|
||||
7530281166
|
||||
6842877170
|
||||
7512789107
|
||||
7638804649
|
||||
7995198730
|
||||
7496218179
|
||||
7181518949
|
||||
8254413848
|
||||
8022381985
|
||||
7361988882
|
||||
7810130859
|
||||
7417215012
|
||||
7872443581
|
||||
7732389294
|
||||
7814055171
|
||||
7463971008
|
||||
8433179161
|
||||
7010361542
|
||||
8758722649
|
||||
7834208169
|
||||
7467025814
|
||||
7909486359
|
||||
7462899259
|
||||
8890074348
|
||||
8072645870
|
||||
7422221759
|
||||
8907995744
|
||||
6612293480
|
||||
7843416231
|
||||
8411079708
|
||||
9525606221
|
||||
6937922478
|
||||
7845436454
|
||||
7864992534
|
||||
7427672637
|
||||
8619142087
|
||||
8731377069
|
||||
8885281498
|
||||
7559808728
|
||||
7173215681
|
||||
7652102219
|
||||
6717276768
|
||||
8244303885
|
||||
7151149289
|
||||
7102114957
|
||||
6526600396
|
||||
7151648008
|
||||
7526924470
|
||||
8040860568
|
||||
8175611289
|
||||
7459798487
|
||||
7145058572
|
||||
6890657989
|
||||
7345908520
|
||||
8924306436
|
||||
8931634035
|
||||
8324005045
|
||||
8599147593
|
||||
8880835677
|
||||
8165157302
|
||||
7460488360
|
||||
8628914421
|
||||
8583302346
|
||||
7934022758
|
||||
7056421549
|
||||
8275846606
|
||||
7009386280
|
||||
7495129707
|
||||
7773552723
|
||||
7645908705
|
||||
8608406256
|
||||
8712832214
|
||||
7664452295
|
||||
8321095578
|
||||
8643168243
|
||||
7250479737
|
||||
7556324607
|
||||
7738815689
|
||||
6796106269
|
||||
7213420720
|
||||
7365304658
|
||||
7297146598""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
dim_40_regular = sum(dim40_regular)
|
||||
|
||||
# dimentions = ("3-dementions", "6-dementions", "40-dementions")
|
||||
# comparitors = {
|
||||
# 'FAT-Pointer based range address': (dmin_3_physically_contigous, dim_6_contigous, dim_40_contigous),
|
||||
# 'System Allocator': (dmin_3_regular, dim_6_regular, dim_40_regular),
|
||||
# }
|
||||
|
||||
# x = np.arange(len(dimentions)) # the label locations
|
||||
# width = 0.25 # the width of the bars
|
||||
# multiplier = 0
|
||||
|
||||
# fig, ax = plt.subplots(layout='constrained')
|
||||
|
||||
# for attribute, measurement in comparitors.items():
|
||||
# offset = width * multiplier
|
||||
# rects = ax.bar(x + offset, measurement, width, label=attribute)
|
||||
# ax.bar_label(rects, padding=3)
|
||||
# multiplier += 1
|
||||
|
||||
# # Add some text for labels, title and custom x-axis tick labels, etc.
|
||||
# ax.set_ylabel('DTLB L1 reads')
|
||||
# ax.set_title('L1D_TLB')
|
||||
# ax.set_xticks(x + width, dimentions)
|
||||
# ax.legend(loc='upper left', ncols=2)
|
||||
# ax.set_ylim(0, 250)
|
||||
|
||||
# plt.show()
|
||||
|
||||
# Sample data
|
||||
categories = ['3 dimentions', '6 dimentions', '40 dimentions']
|
||||
group_1 = [dmin_3_physically_contigous, dim_6_contigous, dim_40_contigous]
|
||||
group_2 = [dmin_3_regular, dim_6_regular, dim_40_regular]
|
||||
|
||||
# Number of categories
|
||||
n = len(categories)
|
||||
|
||||
# Create a bar width
|
||||
bar_width = 0.25
|
||||
|
||||
# Create an array with the positions of the bars on the x-axis
|
||||
r1 = np.arange(n)
|
||||
r2 = [x + bar_width for x in r1]
|
||||
# r3 = [x + bar_width for x in r2]
|
||||
|
||||
# Create the grouped bar graph
|
||||
plt.bar(r1, group_1, color='b', width=bar_width, edgecolor='grey', label='FAT-Pointer based range based addresses')
|
||||
plt.bar(r2, group_2, color='g', width=bar_width, edgecolor='grey', label='System memory allocator')
|
||||
# plt.bar(r3, group_3, color='r', width=bar_width, edgecolor='grey', label='Group 3')
|
||||
|
||||
# Add xticks on the middle of the grouped bars
|
||||
plt.xlabel('Number of dimentions COZ kmeans', fontweight='bold')
|
||||
plt.xticks([r + bar_width for r in range(n)], categories)
|
||||
|
||||
# Add labels and title
|
||||
plt.ylabel('DTLB L1 hits', fontweight='bold')
|
||||
plt.title('Sum of DTLB L1 hits')
|
||||
|
||||
# Add a legend
|
||||
plt.legend()
|
||||
|
||||
# Show the plot
|
||||
plt.show()
|
||||
BIN
pyplot/Kmeans/Sum-Graph/l2-tlb-Histogram.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
pyplot/Kmeans/Sum-Graph/l2-tlb-kmeans.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
pyplot/Kmeans/Sum-Graph/l2-tlb-matrixmultiply.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
pyplot/Kmeans/Sum-Graph/tlb-walk-Histogram.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
pyplot/Kmeans/Sum-Graph/tlb-walk-kmeans.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
pyplot/Kmeans/Sum-Graph/tlb-walk-matrixmultiply.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
667
pyplot/MatrixMultiply/Physically-contigous.txt
Normal file
@@ -0,0 +1,667 @@
|
||||
***** file size is 160000
|
||||
runtime = 0.000212
|
||||
# p/ll_cache_miss_rd
|
||||
92265
|
||||
***** file size is 160000
|
||||
runtime = 0.000244
|
||||
# p/L2D_TLB
|
||||
4918074
|
||||
***** file size is 160000
|
||||
runtime = 0.000292
|
||||
# p/DTLB_WALK
|
||||
26005
|
||||
***** file size is 160000
|
||||
runtime = 0.000234
|
||||
# p/L1D_TLB_RD
|
||||
399876441
|
||||
***** file size is 160000
|
||||
runtime = 0.000216
|
||||
# p/L2D_TLB
|
||||
2946541
|
||||
***** file size is 4000000
|
||||
# p/ll_cache_miss_rd
|
||||
0
|
||||
0
|
||||
202420
|
||||
108748 runtime = 0.000358
|
||||
|
||||
7366843
|
||||
12350564
|
||||
13586069
|
||||
6779734
|
||||
56950
|
||||
***** file size is 4000000
|
||||
# p/L2D_TLB
|
||||
0
|
||||
0
|
||||
0
|
||||
0 runtime = 0.000355
|
||||
|
||||
284913797
|
||||
285856703
|
||||
296730044
|
||||
***** file size is 4000000
|
||||
# p/DTLB_WALK
|
||||
0
|
||||
2722
|
||||
0
|
||||
0 runtime = 0.000369
|
||||
|
||||
84290
|
||||
185921
|
||||
251521
|
||||
356452
|
||||
***** file size is 4000000
|
||||
# p/L1D_TLB_RD
|
||||
0
|
||||
0
|
||||
3182857841
|
||||
2676269451 runtime = 0.000347
|
||||
|
||||
3632836262
|
||||
5086931936
|
||||
4921595689
|
||||
2380537223
|
||||
***** file size is 4000000
|
||||
# p/L2D_TLB
|
||||
13933616
|
||||
0
|
||||
0
|
||||
55855105 runtime = 0.000328
|
||||
|
||||
177840659
|
||||
380285140
|
||||
292719568
|
||||
163746827
|
||||
***** file size is 100000000
|
||||
# p/ll_cache_miss_rd
|
||||
99132
|
||||
38980
|
||||
0
|
||||
197161
|
||||
0
|
||||
67519
|
||||
0
|
||||
140400
|
||||
0
|
||||
143043
|
||||
0
|
||||
0
|
||||
0
|
||||
284282
|
||||
# p/ll_cache_miss_rd
|
||||
0
|
||||
140444
|
||||
0
|
||||
134435
|
||||
83831
|
||||
50211
|
||||
75049
|
||||
0
|
||||
0
|
||||
0
|
||||
288554
|
||||
74050
|
||||
71429
|
||||
74809
|
||||
# p/ll_cache_miss_rd
|
||||
73262
|
||||
73649
|
||||
0
|
||||
140714
|
||||
70424
|
||||
0
|
||||
147499
|
||||
68600
|
||||
81265
|
||||
0
|
||||
139783
|
||||
64799
|
||||
0
|
||||
151170
|
||||
# p/ll_cache_miss_rd
|
||||
68801
|
||||
0
|
||||
145452
|
||||
0
|
||||
125288
|
||||
0
|
||||
163795
|
||||
0
|
||||
141640
|
||||
73859
|
||||
74317
|
||||
64148
|
||||
0
|
||||
136959
|
||||
# p/ll_cache_miss_rd
|
||||
72307
|
||||
69894
|
||||
77496
|
||||
67138
|
||||
0
|
||||
139846
|
||||
70331
|
||||
0
|
||||
132302
|
||||
70375
|
||||
0
|
||||
84102
|
||||
123513
|
||||
0
|
||||
# p/ll_cache_miss_rd
|
||||
144565
|
||||
3028
|
||||
137573
|
||||
5823
|
||||
71125
|
||||
134909
|
||||
0
|
||||
138289
|
||||
0
|
||||
134450
|
||||
0
|
||||
142950
|
||||
0
|
||||
86537
|
||||
# p/ll_cache_miss_rd
|
||||
111946
|
||||
0
|
||||
114053
|
||||
0
|
||||
128592
|
||||
91062
|
||||
0
|
||||
0
|
||||
238779
|
||||
74466
|
||||
70433
|
||||
77585
|
||||
28764
|
||||
73445
|
||||
# p/ll_cache_miss_rd
|
||||
110675
|
||||
34944
|
||||
106227
|
||||
73441
|
||||
66853
|
||||
38920
|
||||
72495
|
||||
104062
|
||||
11226
|
||||
105905
|
||||
70625
|
||||
56476
|
||||
***** file size is 100000000
|
||||
# p/L2D_TLB
|
||||
18130995
|
||||
0
|
||||
33028288
|
||||
29996407
|
||||
22608092
|
||||
0
|
||||
31192747
|
||||
0
|
||||
52731944
|
||||
0
|
||||
40234984
|
||||
642921
|
||||
0
|
||||
0
|
||||
# p/L2D_TLB
|
||||
0
|
||||
0
|
||||
0
|
||||
121159391
|
||||
36184678
|
||||
0
|
||||
42541162
|
||||
0
|
||||
21330990
|
||||
39301881
|
||||
8359005
|
||||
31524351
|
||||
20
|
||||
39931129
|
||||
# p/L2D_TLB
|
||||
19963516
|
||||
20137778
|
||||
0
|
||||
40202382
|
||||
19
|
||||
39777568
|
||||
20081969
|
||||
19246988
|
||||
11938034
|
||||
26768027
|
||||
0
|
||||
39183827
|
||||
19287693
|
||||
1143221
|
||||
# p/L2D_TLB
|
||||
19521220
|
||||
38207819
|
||||
4
|
||||
22124789
|
||||
33708710
|
||||
4119701
|
||||
21037254
|
||||
0
|
||||
39095436
|
||||
20859001
|
||||
36319344
|
||||
20140867
|
||||
19584873
|
||||
3674466
|
||||
# p/L2D_TLB
|
||||
19356737
|
||||
17244296
|
||||
22331678
|
||||
0
|
||||
39540260
|
||||
19406894
|
||||
0
|
||||
42215441
|
||||
19379013
|
||||
32102565
|
||||
19622172
|
||||
19852435
|
||||
19410640
|
||||
19579397
|
||||
# p/L2D_TLB
|
||||
19343633
|
||||
13605252
|
||||
14075127
|
||||
19916730
|
||||
31448432
|
||||
8254938
|
||||
21049230
|
||||
10444948
|
||||
0
|
||||
54307818
|
||||
0
|
||||
0
|
||||
0
|
||||
78942862
|
||||
# p/L2D_TLB
|
||||
0
|
||||
44824213
|
||||
19957202
|
||||
0
|
||||
39918080
|
||||
19758522
|
||||
0
|
||||
34767931
|
||||
23495166
|
||||
19987193
|
||||
19513513
|
||||
19526967
|
||||
19965670
|
||||
19920766
|
||||
# p/L2D_TLB
|
||||
19967121
|
||||
19405457
|
||||
19399844
|
||||
19409943
|
||||
0
|
||||
39894378
|
||||
0
|
||||
0
|
||||
0
|
||||
61536907
|
||||
36235550
|
||||
***** file size is 100000000
|
||||
# p/DTLB_WALK
|
||||
1072
|
||||
1566
|
||||
0
|
||||
775
|
||||
564
|
||||
574
|
||||
0
|
||||
0
|
||||
1842
|
||||
397
|
||||
832
|
||||
0
|
||||
1143
|
||||
0
|
||||
# p/DTLB_WALK
|
||||
1132
|
||||
0
|
||||
0
|
||||
3478
|
||||
335
|
||||
1181
|
||||
0
|
||||
1451
|
||||
0
|
||||
0
|
||||
2456
|
||||
914
|
||||
566
|
||||
208
|
||||
# p/DTLB_WALK
|
||||
1323
|
||||
0
|
||||
1341
|
||||
0
|
||||
0
|
||||
0
|
||||
2800
|
||||
869
|
||||
0
|
||||
1624
|
||||
852
|
||||
0
|
||||
1444
|
||||
78
|
||||
# p/DTLB_WALK
|
||||
0
|
||||
1165
|
||||
242
|
||||
0
|
||||
0
|
||||
1436
|
||||
0
|
||||
1656
|
||||
1295
|
||||
672
|
||||
0
|
||||
2124
|
||||
689
|
||||
247
|
||||
# p/DTLB_WALK
|
||||
974
|
||||
196
|
||||
664
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
4571
|
||||
411
|
||||
1108
|
||||
0
|
||||
1855
|
||||
779
|
||||
0
|
||||
# p/DTLB_WALK
|
||||
0
|
||||
0
|
||||
3973
|
||||
0
|
||||
0
|
||||
2126
|
||||
1090
|
||||
0
|
||||
0
|
||||
0
|
||||
1455
|
||||
868
|
||||
834
|
||||
0
|
||||
# p/DTLB_WALK
|
||||
2252
|
||||
743
|
||||
0
|
||||
0
|
||||
0
|
||||
2867
|
||||
576
|
||||
528
|
||||
737
|
||||
1279
|
||||
753
|
||||
0
|
||||
0
|
||||
1469
|
||||
# p/DTLB_WALK
|
||||
709
|
||||
0
|
||||
951
|
||||
1011
|
||||
560
|
||||
923
|
||||
389
|
||||
681
|
||||
887
|
||||
0
|
||||
1091
|
||||
***** file size is 100000000
|
||||
# p/L1D_TLB_RD
|
||||
0
|
||||
0
|
||||
4417755799
|
||||
0
|
||||
2587126745
|
||||
0
|
||||
1907452696
|
||||
0
|
||||
4470211896
|
||||
1490535856
|
||||
1488268722
|
||||
1492406027
|
||||
0
|
||||
0
|
||||
# p/L1D_TLB_RD
|
||||
3020774732
|
||||
1502998186
|
||||
1495229685
|
||||
1513519294
|
||||
2943026264
|
||||
1500269058
|
||||
52149259
|
||||
1496657426
|
||||
2937658244
|
||||
1494297672
|
||||
74030192
|
||||
1501455826
|
||||
1495883230
|
||||
2888428091
|
||||
# p/L1D_TLB_RD
|
||||
1482110806
|
||||
150844250
|
||||
2836859365
|
||||
0
|
||||
2995913912
|
||||
0
|
||||
2986402746
|
||||
0
|
||||
1637257243
|
||||
2848563352
|
||||
336366333
|
||||
0
|
||||
2955346561
|
||||
1582901866
|
||||
# p/L1D_TLB_RD
|
||||
1494805041
|
||||
1486848958
|
||||
1575414883
|
||||
0
|
||||
3006540619
|
||||
1651961484
|
||||
1495211562
|
||||
1418961073
|
||||
2413046393
|
||||
0
|
||||
2310831892
|
||||
1545685148
|
||||
1494591413
|
||||
1494394190
|
||||
# p/L1D_TLB_RD
|
||||
1495772460
|
||||
1497140001
|
||||
1506995279
|
||||
1502064624
|
||||
1503212470
|
||||
1494161247
|
||||
1496442614
|
||||
1494353921
|
||||
1496910315
|
||||
1490640984
|
||||
2120990326
|
||||
1496964537
|
||||
1503480472
|
||||
0
|
||||
# p/L1D_TLB_RD
|
||||
2487680099
|
||||
1511772203
|
||||
1990506585
|
||||
1085
|
||||
1495006176
|
||||
2981033808
|
||||
1497807398
|
||||
1499905019
|
||||
0
|
||||
2992809338
|
||||
1499678220
|
||||
1503422919
|
||||
1432738350
|
||||
1572013300
|
||||
# p/L1D_TLB_RD
|
||||
1488687745
|
||||
1491956406
|
||||
1493056793
|
||||
1490487590
|
||||
1494885596
|
||||
0
|
||||
2981312602
|
||||
1495995022
|
||||
1494473531
|
||||
91287100
|
||||
2756251323
|
||||
230008646
|
||||
1491190180
|
||||
1430538651
|
||||
# p/L1D_TLB_RD
|
||||
1583249575
|
||||
1576908184
|
||||
1332064486
|
||||
0
|
||||
3175178358
|
||||
0
|
||||
3080574208
|
||||
2649916724
|
||||
1275899646
|
||||
0
|
||||
2878955633
|
||||
***** file size is 100000000
|
||||
# p/L2D_TLB
|
||||
11074868
|
||||
17796846
|
||||
0
|
||||
42335753
|
||||
0
|
||||
42578037
|
||||
17369088
|
||||
0
|
||||
0
|
||||
0
|
||||
82499577
|
||||
0
|
||||
0
|
||||
0
|
||||
# p/L2D_TLB
|
||||
82928349
|
||||
19903822
|
||||
20322217
|
||||
20196113
|
||||
20575304
|
||||
19769508
|
||||
0
|
||||
40692176
|
||||
0
|
||||
35388820
|
||||
0
|
||||
46400139
|
||||
20884653
|
||||
0
|
||||
# p/L2D_TLB
|
||||
40479127
|
||||
20938047
|
||||
20020758
|
||||
21590212
|
||||
17955844
|
||||
1895112
|
||||
24707564
|
||||
35247723
|
||||
19854386
|
||||
19994871
|
||||
0
|
||||
0
|
||||
39958384
|
||||
39619071
|
||||
# p/L2D_TLB
|
||||
19821971
|
||||
0
|
||||
39754647
|
||||
0
|
||||
39873651
|
||||
19521815
|
||||
20209862
|
||||
20048932
|
||||
20231348
|
||||
20214678
|
||||
0
|
||||
41152963
|
||||
6223168
|
||||
16818928
|
||||
# p/L2D_TLB
|
||||
37877594
|
||||
12893970
|
||||
21214360
|
||||
0
|
||||
32124557
|
||||
20718531
|
||||
0
|
||||
40755758
|
||||
35334046
|
||||
0
|
||||
41293476
|
||||
20648826
|
||||
0
|
||||
20479335
|
||||
# p/L2D_TLB
|
||||
21645864
|
||||
28444433
|
||||
0
|
||||
34204784
|
||||
36576871
|
||||
0
|
||||
0
|
||||
0
|
||||
76911224
|
||||
20723929
|
||||
14021956
|
||||
28392009
|
||||
26330087
|
||||
0
|
||||
# p/L2D_TLB
|
||||
41195363
|
||||
9598203
|
||||
28499682
|
||||
0
|
||||
34404203
|
||||
29859217
|
||||
20539283
|
||||
20714755
|
||||
20553408
|
||||
0
|
||||
20889230
|
||||
32963850
|
||||
7949901
|
||||
33765967
|
||||
# p/L2D_TLB
|
||||
28019151
|
||||
13062566
|
||||
26967792
|
||||
0
|
||||
0
|
||||
62723768
|
||||
15030483
|
||||
20277594
|
||||
0
|
||||
41160435
|
||||
0
|
||||
28127160
|
||||
57
pyplot/MatrixMultiply/Size1000/LL_CACHE_MISS.py
Normal file
@@ -0,0 +1,57 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array(np.array([int(x) for x in """0
|
||||
0
|
||||
202420
|
||||
108748
|
||||
7366843
|
||||
12350564
|
||||
13586069
|
||||
6779734
|
||||
56950""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
xpoints = np.array([(i) for i, x in enumerate(ypoints, 1)])
|
||||
|
||||
ypoints1 = np.array(np.array([int(x) for x in """105883
|
||||
0
|
||||
135218
|
||||
0
|
||||
8322082
|
||||
12700590
|
||||
12017926
|
||||
6160362
|
||||
134527""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
L1D_CACHE_LMISS_RD
|
||||
The counter counts each Memory-read operation to the Level 1 data or unified cache counted by L1D_CACHE that incurs additional latency because it returns data from outside of the Level 1 data or unified cache of this PE.
|
||||
The event indicates to software that the access missed in the Level 1 data or unified cache and might have a significant performance impact due to the additional latency compared to the latency of an access that hits in the Level 1 data or unified cache.
|
||||
The counter does not count:
|
||||
• Accesses where the additional latency is unlikely to be significantly performance-impacting. For example, if the access hits in another cache in the same local cluster, and the additional latency is small when compared to a miss in all Level 1 caches that the access looks up in and results in an access being made to a Level 2 cache or elsewhere beyond the Level 1 data or unified cache.
|
||||
• A miss that does not cause a new cache refill but is satisfied from a previous miss.
|
||||
An implementation is not required to measure the latency, nor to track the access to determine whether the additional latency caused a performance impact. An implementation can extend the definition of this event with additional scenarios where an access might have a significant performance impact due to additional latency for the access.
|
||||
It is IMPLEMENTATION DEFINED whether accesses that result from cache maintenance operations are counted.
|
||||
If the cache is shared and the Effective value of PMEVTYPER<n>_EL0.MT for the counter is 0, then the counter counts only events Attributable to the PE counting the event. For a multithreaded processor implementation, if the cache is shared by PEs other than the PEs in the multithreaded processor and the Effective value of PMEVTYPER<n>_EL0.MT for the counter is 1, then the counter counts only events Attributable to PEs in the multithreaded processor. In all other cases, it is IMPLEMENTATION DEFINED whether only events Attributable to the PE counting the event or all events are counted, and might depend on the Effective value of PMEVTYPER<n>_EL1.MT.
|
||||
PMCEID1_EL0[25] reads as 1 if this event is implemented and 0 otherwise. This event must be implemented if FEAT_PMUv3p4 is implemented.
|
||||
'''
|
||||
# plt.title("L1D cache miss read \n ARM Performance counter: L1D_CACHE_LMISS_RD \n each Memory-read operation or Memory-write operation that causes a cache \n access to at least the Level 1 data or unified cache. This includes each complete or partial translation table walk that causes an access to memory, including to data or translation table walk caches. \n Matrix multiply size 1000")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("L1 cache misses")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('l1_1000_MatrixMultiply.png')
|
||||
55
pyplot/MatrixMultiply/Size1000/TLB-DTLB-walk.py
Normal file
@@ -0,0 +1,55 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array([int(x) for x in """0
|
||||
2722
|
||||
0
|
||||
0
|
||||
84290
|
||||
185921
|
||||
251521
|
||||
356452""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
xpoints = np.array([(i) for i, x in enumerate(ypoints, 1)])
|
||||
|
||||
ypoints1 = np.array([int(x) for x in """1310
|
||||
1658
|
||||
86
|
||||
0
|
||||
73097
|
||||
171472
|
||||
237158
|
||||
161478""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
DTLB_WALK
|
||||
The counter counts each access counted by L1D_TLB that causes a
|
||||
refill of a data or unified
|
||||
TLB involving at least one translation table walk access.
|
||||
This includes each complete or partial translation table walk that causes an
|
||||
access to memory, including to data or translation table walk caches.
|
||||
If Armv8.7 is not implemented, it is IMPLEMENTATION DEFINED whether accesses
|
||||
that cause an update of an existing TLB entry involving at least one translation
|
||||
table walk access are counted. If Armv8.7 is implemented, these accesses
|
||||
are counted.
|
||||
'''
|
||||
# plt.title("Data TLB access, read \n ARM Performance counter: DTLB_WALK \n Data TLB access with at least one translation table walk \n This includes each complete or partial translation table walk that causes an access to memory, including to data or translation table walk caches. \n Matrix multiply size 1000")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("DTLB walks")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('dtlb_walk_1000_MatrixMultiply.png')
|
||||
50
pyplot/MatrixMultiply/Size1000/TLB-L1-DATA-ACCESS.py
Normal file
@@ -0,0 +1,50 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array([int(x) for x in """0
|
||||
0
|
||||
3182857841
|
||||
2676269451
|
||||
3632836262
|
||||
5086931936
|
||||
4921595689
|
||||
2380537223""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
xpoints = np.array([(i) for i, x in enumerate(ypoints, 1)])
|
||||
|
||||
ypoints1 = np.array([int(x) for x in """0
|
||||
1662045387
|
||||
2568704269
|
||||
0
|
||||
5404906944
|
||||
4946152426
|
||||
5097512016
|
||||
1934071481""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
L1D_TLB
|
||||
The counter counts each Memory-read operation or Memory-write operation that causes a TLB
|
||||
access to at least the Level 1 data or unified TLB.
|
||||
Each access to a TLB entry is counted including multiple accesses caused by single instructions
|
||||
such as LDM or STM.
|
||||
'''
|
||||
# plt.title("Level 1 data TLB access, read \n ARM Performance counter: L1D_TLB_RD \n This counter counts each access counted by \n L1D_TLB that is a Memory-read operation. \n Matrix multiply size 1000")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("L1 DTLB reads")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('l1_data_1000_MatrixMultiply.png')
|
||||
55
pyplot/MatrixMultiply/Size1000/TLB-L2D_TLB.py
Normal file
@@ -0,0 +1,55 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
|
||||
ypoints = np.array([int(x) for x in """13933616
|
||||
0
|
||||
0
|
||||
55855105
|
||||
177840659
|
||||
380285140
|
||||
292719568
|
||||
163746827""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
xpoints = np.array([(i) for i, x in enumerate(ypoints, 1)])
|
||||
|
||||
ypoints1 = np.array([int(x) for x in """0
|
||||
0
|
||||
48672313
|
||||
0
|
||||
243876172
|
||||
332240431
|
||||
283300132
|
||||
151566198""".replace(' ',',').replace('\n','').split(",")])
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
DTLB_WALK
|
||||
The counter counts each Memory-read operation or Memory-write operation that causes a
|
||||
TLB access to at least the Level 2 data or unified TLB.
|
||||
Each access to a TLB entry is counted including refills
|
||||
of Level 1 TLBs.
|
||||
The counter does not count the access if the access i
|
||||
s due to a TLB maintenance instruction.
|
||||
'''
|
||||
# plt.title("Level 2 data TLB acces, read \n ARM Performance counter: L2D_TLB \n The counter counts each Memory-read operation or Memory-write operation that causes a TLB access to at least the Level 2 data or unified TLB. \n Matrix multiply size 1000")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("L2 DTLB reads")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('l2_tlb_1000_MatrixMultiply.png')
|
||||
BIN
pyplot/MatrixMultiply/Size1000/dtlb_walk_1000_MatrixMultiply.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
pyplot/MatrixMultiply/Size1000/l1_1000_MatrixMultiply.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
pyplot/MatrixMultiply/Size1000/l1_data_1000_MatrixMultiply.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
pyplot/MatrixMultiply/Size1000/l2_tlb_1000_MatrixMultiply.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
41
pyplot/MatrixMultiply/Size200/LL_CACHE_MISS.py
Normal file
@@ -0,0 +1,41 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array([92265,94650])
|
||||
|
||||
xpoints = ["Malloc Physically contigous with bounds","System memory allocator"]
|
||||
|
||||
# ypoints1 = np.array([19384360])
|
||||
|
||||
# xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
plt.bar(xpoints, ypoints)
|
||||
# plt.bar(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
L1D_CACHE_LMISS_RD
|
||||
The counter counts each Memory-read operation to the Level 1 data or unified cache counted by L1D_CACHE that incurs additional latency because it returns data from outside of the Level 1 data or unified cache of this PE.
|
||||
The event indicates to software that the access missed in the Level 1 data or unified cache and might have a significant performance impact due to the additional latency compared to the latency of an access that hits in the Level 1 data or unified cache.
|
||||
The counter does not count:
|
||||
• Accesses where the additional latency is unlikely to be significantly performance-impacting. For example, if the access hits in another cache in the same local cluster, and the additional latency is small when compared to a miss in all Level 1 caches that the access looks up in and results in an access being made to a Level 2 cache or elsewhere beyond the Level 1 data or unified cache.
|
||||
• A miss that does not cause a new cache refill but is satisfied from a previous miss.
|
||||
An implementation is not required to measure the latency, nor to track the access to determine whether the additional latency caused a performance impact. An implementation can extend the definition of this event with additional scenarios where an access might have a significant performance impact due to additional latency for the access.
|
||||
It is IMPLEMENTATION DEFINED whether accesses that result from cache maintenance operations are counted.
|
||||
If the cache is shared and the Effective value of PMEVTYPER<n>_EL0.MT for the counter is 0, then the counter counts only events Attributable to the PE counting the event. For a multithreaded processor implementation, if the cache is shared by PEs other than the PEs in the multithreaded processor and the Effective value of PMEVTYPER<n>_EL0.MT for the counter is 1, then the counter counts only events Attributable to PEs in the multithreaded processor. In all other cases, it is IMPLEMENTATION DEFINED whether only events Attributable to the PE counting the event or all events are counted, and might depend on the Effective value of PMEVTYPER<n>_EL1.MT.
|
||||
PMCEID1_EL0[25] reads as 1 if this event is implemented and 0 otherwise. This event must be implemented if FEAT_PMUv3p4 is implemented.
|
||||
'''
|
||||
# plt.title("L1D cache miss read \n ARM Performance counter: L1D_CACHE_LMISS_RD \n each Memory-read operation or Memory-write operation that causes a cache \n access to at least the Level 1 data or unified cache. This includes each complete or partial translation table walk that causes an access to memory, including to data or translation table walk caches. \n Histogram medium")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("L1D cache misses")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('ll_200_MatrixMultiply.png')
|
||||
37
pyplot/MatrixMultiply/Size200/TLB-DTLB-walk.py
Normal file
@@ -0,0 +1,37 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array([26005,8517])
|
||||
|
||||
xpoints = ["Malloc Physically contigous with bounds","System memory allocator"]
|
||||
|
||||
|
||||
plt.bar(xpoints, ypoints)
|
||||
|
||||
'''
|
||||
DTLB_WALK
|
||||
The counter counts each access counted by L1D_TLB that causes a
|
||||
refill of a data or unified
|
||||
TLB involving at least one translation table walk access.
|
||||
This includes each complete or partial translation table walk that causes an
|
||||
access to memory, including to data or translation table walk caches.
|
||||
If Armv8.7 is not implemented, it is IMPLEMENTATION DEFINED whether accesses
|
||||
that cause an update of an existing TLB entry involving at least one translation
|
||||
table walk access are counted. If Armv8.7 is implemented, these accesses
|
||||
are counted.
|
||||
'''
|
||||
# plt.title("Data TLB access, read \n ARM Performance counter: DTLB_WALK \n Data TLB access with at least one translation table walk \n This includes each complete or partial translation table walk that causes an access to memory, including to data or translation table walk caches. \n Matrix multiply size 200")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("DTLB walks")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('dtlb_walk_200_MatrixMultiply.png')
|
||||
31
pyplot/MatrixMultiply/Size200/TLB-L1-DATA-ACCESS.py
Normal file
@@ -0,0 +1,31 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints = np.array([399876441,380500198])
|
||||
|
||||
xpoints = ["Malloc Physically contigous with bounds","System memory allocator"]
|
||||
|
||||
plt.bar(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
|
||||
'''
|
||||
L1D_TLB
|
||||
The counter counts each Memory-read operation or Memory-write operation that causes a TLB
|
||||
access to at least the Level 1 data or unified TLB.
|
||||
Each access to a TLB entry is counted including multiple accesses caused by single instructions
|
||||
such as LDM or STM.
|
||||
'''
|
||||
# plt.title("Level 1 data TLB access, read \n ARM Performance counter: L1D_TLB_RD \n This counter counts each access counted by \n L1D_TLB that is a Memory-read operation. \n Matrix multiply size 200")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("L1 DTLB reads")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
# plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('l1_tlb_200_MatrixMultiply.png')
|
||||
33
pyplot/MatrixMultiply/Size200/TLB-L2D_TLB.py
Normal file
@@ -0,0 +1,33 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
|
||||
ypoints = np.array([3013349,2946541])
|
||||
|
||||
xpoints = ["Malloc Physically contigous with bounds","System memory allocator"]
|
||||
|
||||
plt.bar(xpoints, ypoints)
|
||||
|
||||
'''
|
||||
The counter counts each Memory-read operation or Memory-write operation that causes a
|
||||
TLB access to at least the Level 2 data or unified TLB.
|
||||
Each access to a TLB entry is counted including refills
|
||||
of Level 1 TLBs.
|
||||
The counter does not count the access if the access i
|
||||
s due to a TLB maintenance instruction.
|
||||
'''
|
||||
# plt.title("Level 2 data TLB acces, read \n ARM Performance counter: L2D_TLB \n The counter counts each Memory-read operation or Memory-write operation that causes a TLB access to at least the Level 2 data or unified TLB. \n Matrix Multiply size 200")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("L2 DTLB reads")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
# plt.show()
|
||||
|
||||
plt.savefig('l2_tlb_200_MatrixMultiply.png')
|
||||
BIN
pyplot/MatrixMultiply/Size200/dtlb_walk_200_MatrixMultiply.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
pyplot/MatrixMultiply/Size200/l1_tlb_200_MatrixMultiply.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
pyplot/MatrixMultiply/Size200/l2_tlb_200_MatrixMultiply.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
pyplot/MatrixMultiply/Size200/ll_200_MatrixMultiply.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
331
pyplot/MatrixMultiply/Size5000/LL_CACHE_MISS.py
Normal file
@@ -0,0 +1,331 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
|
||||
# xpoints = np.array([5,10,15,20])
|
||||
|
||||
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
|
||||
# xpoints1 = np.array([5,10,15,20])
|
||||
|
||||
ypoints1 = np.array(np.array([int(x) for x in """0
|
||||
0
|
||||
0
|
||||
326765
|
||||
0
|
||||
143484
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
464576
|
||||
99734
|
||||
70229
|
||||
78698
|
||||
50530
|
||||
93548
|
||||
64971
|
||||
10767
|
||||
137521
|
||||
7028
|
||||
132692
|
||||
73331
|
||||
73142
|
||||
0
|
||||
138998
|
||||
0
|
||||
78208
|
||||
0
|
||||
198635
|
||||
0
|
||||
126237
|
||||
77513
|
||||
73931
|
||||
72472
|
||||
75476
|
||||
0
|
||||
87771
|
||||
88689
|
||||
110750
|
||||
73056
|
||||
70395
|
||||
0
|
||||
137320
|
||||
0
|
||||
106593
|
||||
0
|
||||
113893
|
||||
0
|
||||
0
|
||||
247353
|
||||
71688
|
||||
0
|
||||
0
|
||||
0
|
||||
306619
|
||||
48398
|
||||
76920
|
||||
72885
|
||||
0
|
||||
160647
|
||||
56256
|
||||
58108
|
||||
99557
|
||||
0
|
||||
122549
|
||||
79748
|
||||
77494
|
||||
0
|
||||
142310
|
||||
0
|
||||
131992
|
||||
71645
|
||||
0
|
||||
152255
|
||||
73324
|
||||
70870
|
||||
67944
|
||||
72820
|
||||
72185
|
||||
71309
|
||||
70495
|
||||
74632
|
||||
0
|
||||
142266
|
||||
15879
|
||||
123504
|
||||
0
|
||||
138605
|
||||
70871
|
||||
68983
|
||||
17283
|
||||
125136
|
||||
45899
|
||||
49622
|
||||
62345
|
||||
123180
|
||||
0
|
||||
127536
|
||||
83637
|
||||
19920
|
||||
116609
|
||||
23423
|
||||
70723
|
||||
52828
|
||||
88384
|
||||
75240
|
||||
74572
|
||||
15926815
|
||||
21348754
|
||||
20703968
|
||||
22389062
|
||||
20992753
|
||||
21657595
|
||||
21797899
|
||||
21449332
|
||||
22178036
|
||||
21222075
|
||||
20807027
|
||||
24825060
|
||||
24390913
|
||||
27926846
|
||||
24373458
|
||||
23572469
|
||||
21851595
|
||||
21905648
|
||||
21818847
|
||||
24682778
|
||||
25138079
|
||||
24572099
|
||||
22573802
|
||||
24027619
|
||||
25668582
|
||||
23439214
|
||||
21842812
|
||||
21773955
|
||||
21937392
|
||||
22182668
|
||||
21837997
|
||||
22016854
|
||||
23966253
|
||||
25743918
|
||||
22093267
|
||||
23362716
|
||||
21546631
|
||||
23028139
|
||||
25033183
|
||||
24980317
|
||||
24431848
|
||||
22165558
|
||||
22660672
|
||||
22342552
|
||||
21674610
|
||||
21231647
|
||||
23343685
|
||||
25355447
|
||||
21432591
|
||||
15824624
|
||||
19407533
|
||||
24295429
|
||||
22510455
|
||||
17120495
|
||||
19704211
|
||||
20393780
|
||||
24520902
|
||||
25454814
|
||||
22826189
|
||||
23197333
|
||||
23909896
|
||||
24263964
|
||||
21327971
|
||||
17364694
|
||||
15234428
|
||||
21608937
|
||||
22042900
|
||||
24071774
|
||||
21218994
|
||||
24225649
|
||||
24232228
|
||||
22718402
|
||||
22553169
|
||||
24904231
|
||||
5354218""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
|
||||
|
||||
ypoints = np.array(np.array([int(x) for x in """99132
|
||||
38980
|
||||
0
|
||||
197161
|
||||
0
|
||||
67519
|
||||
0
|
||||
140400
|
||||
0
|
||||
143043
|
||||
0
|
||||
0
|
||||
0
|
||||
284282
|
||||
0
|
||||
140444
|
||||
0
|
||||
134435
|
||||
83831
|
||||
50211
|
||||
75049
|
||||
0
|
||||
0
|
||||
0
|
||||
288554
|
||||
74050
|
||||
71429
|
||||
74809
|
||||
73262
|
||||
73649
|
||||
0
|
||||
140714
|
||||
70424
|
||||
0
|
||||
147499
|
||||
68600
|
||||
81265
|
||||
0
|
||||
139783
|
||||
64799
|
||||
0
|
||||
151170
|
||||
68801
|
||||
0
|
||||
145452
|
||||
0
|
||||
125288
|
||||
0
|
||||
163795
|
||||
0
|
||||
141640
|
||||
73859
|
||||
74317
|
||||
64148
|
||||
0
|
||||
136959
|
||||
72307
|
||||
69894
|
||||
77496
|
||||
67138
|
||||
0
|
||||
139846
|
||||
70331
|
||||
0
|
||||
132302
|
||||
70375
|
||||
0
|
||||
84102
|
||||
123513
|
||||
0
|
||||
144565
|
||||
3028
|
||||
137573
|
||||
5823
|
||||
71125
|
||||
134909
|
||||
0
|
||||
138289
|
||||
0
|
||||
134450
|
||||
0
|
||||
142950
|
||||
0
|
||||
86537
|
||||
111946
|
||||
0
|
||||
114053
|
||||
0
|
||||
128592
|
||||
91062
|
||||
0
|
||||
0
|
||||
238779
|
||||
74466
|
||||
70433
|
||||
77585
|
||||
28764
|
||||
73445
|
||||
110675
|
||||
34944
|
||||
106227
|
||||
73441
|
||||
66853
|
||||
38920
|
||||
72495
|
||||
104062
|
||||
11226
|
||||
105905
|
||||
70625
|
||||
56476""".replace(' ',',').replace('\n','').split(",")]))
|
||||
|
||||
xpoints = np.array([(i) for i, x in enumerate(ypoints, 1)])
|
||||
|
||||
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
|
||||
plt.plot(xpoints1, ypoints1,label='System memory allocator')
|
||||
|
||||
'''
|
||||
L1D_CACHE_LMISS_RD
|
||||
The counter counts each Memory-read operation to the Level 1 data or unified cache counted by L1D_CACHE that incurs additional latency because it returns data from outside of the Level 1 data or unified cache of this PE.
|
||||
The event indicates to software that the access missed in the Level 1 data or unified cache and might have a significant performance impact due to the additional latency compared to the latency of an access that hits in the Level 1 data or unified cache.
|
||||
The counter does not count:
|
||||
• Accesses where the additional latency is unlikely to be significantly performance-impacting. For example, if the access hits in another cache in the same local cluster, and the additional latency is small when compared to a miss in all Level 1 caches that the access looks up in and results in an access being made to a Level 2 cache or elsewhere beyond the Level 1 data or unified cache.
|
||||
• A miss that does not cause a new cache refill but is satisfied from a previous miss.
|
||||
An implementation is not required to measure the latency, nor to track the access to determine whether the additional latency caused a performance impact. An implementation can extend the definition of this event with additional scenarios where an access might have a significant performance impact due to additional latency for the access.
|
||||
It is IMPLEMENTATION DEFINED whether accesses that result from cache maintenance operations are counted.
|
||||
If the cache is shared and the Effective value of PMEVTYPER<n>_EL0.MT for the counter is 0, then the counter counts only events Attributable to the PE counting the event. For a multithreaded processor implementation, if the cache is shared by PEs other than the PEs in the multithreaded processor and the Effective value of PMEVTYPER<n>_EL0.MT for the counter is 1, then the counter counts only events Attributable to PEs in the multithreaded processor. In all other cases, it is IMPLEMENTATION DEFINED whether only events Attributable to the PE counting the event or all events are counted, and might depend on the Effective value of PMEVTYPER<n>_EL1.MT.
|
||||
PMCEID1_EL0[25] reads as 1 if this event is implemented and 0 otherwise. This event must be implemented if FEAT_PMUv3p4 is implemented.
|
||||
'''
|
||||
plt.title("L1D cache miss read \n ARM Performance counter: L1D_CACHE_LMISS_RD \n each Memory-read operation or Memory-write operation that causes a cache \n access to at least the Level 1 data or unified cache. This includes each complete or partial translation table walk that causes an access to memory, including to data or translation table walk caches. \n Histogram medium")
|
||||
|
||||
plt.xlabel("time in seconds")
|
||||
plt.ylabel("DTLB walks")
|
||||
# plt.plot(xpoints1, ypoints1)
|
||||
plt.legend()
|
||||
plt.show()
|
||||