diff options
author | Yann Herklotz <git@yannherklotz.com> | 2022-01-14 16:04:54 +0000 |
---|---|---|
committer | Yann Herklotz <git@yannherklotz.com> | 2022-01-14 16:04:54 +0000 |
commit | fccdbc2a164fcd324a401ae328b1ac31dad95af9 (patch) | |
tree | 69b9791a247968c951431e34bf209d0ea11825ad /scripts | |
parent | 17784589e22e617401208b30782ca38c0a08e6d1 (diff) | |
download | fccm22_rsvhls-fccdbc2a164fcd324a401ae328b1ac31dad95af9.tar.gz fccm22_rsvhls-fccdbc2a164fcd324a401ae328b1ac31dad95af9.zip |
Add slice-ratio and time-ratio
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/gen-data.rkt | 69 |
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) |