aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2021-12-09 20:02:36 +0000
committerYann Herklotz <git@yannherklotz.com>2021-12-09 20:02:36 +0000
commit1c91db6b6d4cd20994fdfc40283b003c1ec93d50 (patch)
treeb92a51166b6c313c6861a152c280a65ec575adc9
parent048e219468508ad403e576ef15a416fd8d051b22 (diff)
downloadvericert-1c91db6b6d4cd20994fdfc40283b003c1ec93d50.tar.gz
vericert-1c91db6b6d4cd20994fdfc40283b003c1ec93d50.zip
Update benchmark runs
-rw-r--r--benchmarks/polybench-syn/common.mk2
-rw-r--r--scripts/gather_data.rkt112
2 files changed, 80 insertions, 34 deletions
diff --git a/benchmarks/polybench-syn/common.mk b/benchmarks/polybench-syn/common.mk
index 85d62f6..8e67294 100644
--- a/benchmarks/polybench-syn/common.mk
+++ b/benchmarks/polybench-syn/common.mk
@@ -1,5 +1,5 @@
VERICERT ?= vericert
-VERICERT_OPTS ?= -DSYNTHESIS -O0 -finline -fschedule -fif-conv
+VERICERT_OPTS ?= -DSYNTHESIS -fschedule -fif-conv
IVERILOG ?= iverilog
IVERILOG_OPTS ?=
diff --git a/scripts/gather_data.rkt b/scripts/gather_data.rkt
index b2aa9c5..5e97c9e 100644
--- a/scripts/gather_data.rkt
+++ b/scripts/gather_data.rkt
@@ -15,21 +15,62 @@
(permissive-xexprs #t)
-(define (parse-vivado-report f)
- (let* ([encode-xml-port (open-input-file f)]
- [report (xml->xexpr (document-element (read-xml encode-xml-port)))])
- (close-input-port encode-xml-port)
- report))
+(define (to-name f) (regexp-replace #rx".*/([^/]+)/encode_report.xml" f "\\1"))
+
+(define files
+ '("./data/data-mining/covariance/encode_report.xml"
+ "./data/stencils/heat-3d/encode_report.xml"
+ "./data/stencils/jacobi-1d/encode_report.xml"
+ "./data/stencils/seidel-2d/encode_report.xml"
+ "./data/stencils/jacobi-2d/encode_report.xml"
+ "./data/linear-algebra/kernels/doitgen/encode_report.xml"
+ "./data/linear-algebra/kernels/2mm/encode_report.xml"
+ "./data/linear-algebra/kernels/3mm/encode_report.xml"
+ "./data/linear-algebra/blas/gemver/encode_report.xml"
+ "./data/linear-algebra/blas/syrk/encode_report.xml"
+ "./data/linear-algebra/blas/gemm/encode_report.xml"
+ "./data/linear-algebra/solvers/trisolv/encode_report.xml"))
(define (list->hash l)
(foldr (lambda (v l)
+ (hash-set l (car v) (cadr v)))
+ (hash) l))
+
+(define (list->hashn l)
+ (foldr (lambda (v l)
(hash-set l (car v) (string->number (cadr v))))
(hash) l))
+(define name-f-map
+ (list->hash (map (lambda (f) (list (to-name f) f)) files)))
+
+(define (parse-vivado-report f)
+ (let* ([encode-xml-port (open-input-file f)]
+ [report (xml->xexpr (document-element (read-xml encode-xml-port)))])
+ (close-input-port encode-xml-port)
+ report))
+
(define (process-vivado-report report)
(let ([maps (map (lambda (x) (match x [(list e (list (list a b) (list c d))) (list b d)]))
(filter-not string? (se-path*/list '(section) report)))])
- (list->hash maps)))
+ (list->hashn maps)))
+
+(define (vivado-report-f f) (process-vivado-report (parse-vivado-report f)))
+
+;;(vivado-report-f "./data/data-mining/covariance/encode_report.xml")
+
+(define synth-f (map flatten (hash-map name-f-map
+ (lambda (n f) (let ([x (vivado-report-f f)])
+ (list n
+ (hash-ref x "XILINX_LUT_FLIP_FLOP_PAIRS_USED")
+ (hash-ref x "XILINX_SLICE")
+ (hash-ref x "XILINX_SLICE_REGISTERS")
+ (hash-ref x "XILINX_SLICE_LUTS")
+ (hash-ref x "XILINX_BLOCK_RAMFIFO")
+ (hash-ref x "XILINX_IOPIN")
+ (hash-ref x "XILINX_DSPS")
+ (hash-ref x "XILINX_POWER")
+ (hash-ref x "XILINX_DESIGN_DELAY")))))))
(define (parse-sim-report f)
(let* ([exec-csv (open-input-file f)]
@@ -37,30 +78,35 @@
(close-input-port exec-csv)
report))
-(define sim-report (list->hash (parse-sim-report "exec.csv")))
-(define vivado-report (process-vivado-report (parse-vivado-report "encode_report.xml")))
-(define cycles (hash-ref sim-report "covariance"))
-(define delay (hash-ref vivado-report "XILINX_DESIGN_DELAY"))
-
-(* cycles delay)
-
-(define gss (df-read/csv "exec.csv"))
-
-(df-add-series gss (make-series "tool" #:data (make-vector (df-row-count gss) "vericert")))
-
-(df-add-series gss (make-series "delay" #:data (list->vector (map (lambda (x)
- (~> "/encode_report.xml"
- (string-append x _)
- parse-vivado-report
- process-vivado-report
- (hash-ref "XILINX_DESIGN_DELAY")))
- (filter-not (lambda (x) (equal? x "test-case")) (map car (hash->list sim-report)))))))
-
-(show gss everything #:n-rows 'all)
-
-(graph #:data gss
- #:title "Chart"
- #:mapping (aes #:x "test-case" #:y "cycle count")
- (col #:gap 0.25))
-
-;(define csv (open-output-file "out.csv"))
+(define sim-report (list->hashn (parse-sim-report "exec.csv")))
+
+(define csv (open-output-file "out2.csv"))
+(display (table->string
+ (append '((benchmark lut_flip_flop slice regs luts ramfifo iopin dsps power delay cycles))
+ (map (lambda (x) (append x (list (hash-ref sim-report (car x))))) synth-f))) csv)
+(close-output-port csv)
+
+;;(define vivado-report (process-vivado-report (parse-vivado-report "encode_report.xml")))
+;;(define cycles (hash-ref sim-report "covariance"))
+;;(define delay (hash-ref vivado-report "XILINX_DESIGN_DELAY"))
+;;
+;;(define gss (df-read/csv "exec.csv"))
+;;
+;;(df-add-series gss (make-series "tool" #:data (make-vector (df-row-count gss) "vericert")))
+;;
+;;(df-add-series gss (make-series "delay" #:data (list->vector (map (lambda (x)
+;; (~> "/encode_report.xml"
+;; (string-append x _)
+;; parse-vivado-report
+;; process-vivado-report
+;; (hash-ref "XILINX_DESIGN_DELAY")))
+;; (filter-not (lambda (x) (equal? x "test-case")) (map car (hash->list sim-report)))))))
+;;
+;;(show gss everything #:n-rows 'all)
+;;
+;;(graph #:data gss
+;; #:title "Chart"
+;; #:mapping (aes #:x "test-case" #:y "cycle count")
+;; (col #:gap 0.25))
+;;
+;;;(define csv (open-output-file "out.csv"))