summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2022-01-14 16:04:54 +0000
committerYann Herklotz <git@yannherklotz.com>2022-01-14 16:04:54 +0000
commitfccdbc2a164fcd324a401ae328b1ac31dad95af9 (patch)
tree69b9791a247968c951431e34bf209d0ea11825ad /scripts
parent17784589e22e617401208b30782ca38c0a08e6d1 (diff)
downloadfccm22_rsvhls-fccdbc2a164fcd324a401ae328b1ac31dad95af9.tar.gz
fccm22_rsvhls-fccdbc2a164fcd324a401ae328b1ac31dad95af9.zip
Add slice-ratio and time-ratio
Diffstat (limited to 'scripts')
-rw-r--r--scripts/gen-data.rkt69
1 files changed, 69 insertions, 0 deletions
diff --git a/scripts/gen-data.rkt b/scripts/gen-data.rkt
new file mode 100644
index 0000000..072af6d
--- /dev/null
+++ b/scripts/gen-data.rkt
@@ -0,0 +1,69 @@
+#lang racket
+
+(require racket/match)
+(require racket/list)
+(require racket/file)
+
+(require threading)
+
+(require csv-reading)
+(require csv-writing)
+
+(define (parse-csv f)
+ (let* ([exec-csv (open-input-file f)]
+ [report (csv->list exec-csv)])
+ (close-input-port exec-csv)
+ report))
+
+(define (nth lst idx)
+ (cond ((empty? lst) empty) ; more effiecent than (= (length lst) 0)
+ ((= idx 0) (first lst))
+ (else (nth (rest lst) (- idx 1)))))
+
+(define bambu-results (cdr (parse-csv "./data/bambu-area.csv")))
+(define vericert-full-inlining (cdr (parse-csv "./data/vericert-full-inlining.csv")))
+(define vericert-fun (cdr (parse-csv "./data/vericert-fun.csv")))
+
+(define (get-row lst n)
+ (map (lambda (x) (string->number (nth x n))) lst))
+
+(define (get-slice lst) (get-row lst 2))
+(define (get-delay lst) (get-row lst 9))
+(define (get-cycles lst) (get-row lst 10))
+
+(define (get-relative lst1 lst2)
+ (for/list ([i lst1] [j lst2]) (/ i j)))
+
+(define (mul-lists lst1 lst2) (for/list ([i lst1] [j lst2]) (* i j)))
+
+(define slice-ratio-vericert-fun
+ (get-relative (get-slice vericert-fun) (get-slice bambu-results)))
+
+(define slice-ratio-vericert-full-inlining
+ (get-relative (get-slice vericert-full-inlining) (get-slice bambu-results)))
+
+(define time-ratio-vericert-fun
+ (get-relative (mul-lists (get-delay vericert-fun) (get-cycles vericert-fun))
+ (mul-lists (get-delay bambu-results) (get-cycles bambu-results))))
+
+(define time-ratio-vericert-full-inlining
+ (get-relative (mul-lists (get-delay vericert-full-inlining) (get-cycles vericert-full-inlining))
+ (mul-lists (get-delay bambu-results) (get-cycles bambu-results))))
+
+(define time-ratio (open-output-file "./data/time-ratio.csv"))
+(display (table->string
+ (cons '("vericert" "vericert-fun") (for/list
+ ([i time-ratio-vericert-full-inlining]
+ [j time-ratio-vericert-fun])
+ (list i j))))
+ time-ratio)
+(close-output-port time-ratio)
+
+(define slice-ratio (open-output-file "./data/slice-ratio.csv"))
+(display (table->string
+ (cons '("vericert" "vericert-fun") (for/list
+ ([i slice-ratio-vericert-full-inlining]
+ [j slice-ratio-vericert-fun])
+ (list i j))))
+ slice-ratio)
+(close-output-port slice-ratio)