From d932663519006e158dc3dbf4adbe9dd93f2e72b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoffer=20M=C3=BCller=20Madsen?= Date: Sun, 13 May 2018 22:26:24 +0200 Subject: [PATCH] add explanation of ply speedup --- report_docs.txt | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 report_docs.txt diff --git a/report_docs.txt b/report_docs.txt new file mode 100644 index 0000000..e9d68ca --- /dev/null +++ b/report_docs.txt @@ -0,0 +1,28 @@ + Alexander og jeg skrev noget af vores bachelorprojekt om til C her i fredags. + Man skal virkelig passe på sine hukommelsesallokeringer. + Ja, helt klart. + Jeg fandt et memory leak, der lækkede 100 MiB hukommelse i sekundet. + Hvilken del blev C-ificeret? + Damned + Årsagen var at vi gav et objekt med tilbage til Python uden at dekrementere dets ref-count, så fortolkeren stadig troede at nogen havde brug for det. + Den del af spillogikken, der tjekker om træk er gyldige. + Det bliver kaldt ret mange tusinde gange pr. spil, så vi tænkte at der måske kunne være lidt optimering at hente i at omskrive det til C. + Ok, så I har ikke selv brugt alloc og free. Det er alligevel noget. + Metoden selv blev 7 gange hurtigere! + Wow! + Jo. Det endte vi også med at gøre. + Vi havde brug for lister af variabel størrelse. Det endte med en struct med et "size" felt og et "list" felt. + Inkluderer det speedup, frem og tilbagen mellem C og python? + Det burde det gøre, ja! + Gjorde det nogen stor effekt for hvor hurtigt I kan evaluere? + Jeg tror ikke at der er særligt meget "frem og tilbage"-stads. Det ser ud til at det kode man skriver bliver kastet ret direkte ind i fortolkeren. + Det gjorde en stor forskel for når vi laver 1-ply. + "ply" er hvor mange træk man kigger fremad. + Så kun at kigge på det umiddelbart næste træk er 0-ply, hvilket er det vi har gjort indtil nu + 1-ply var for langsomt. Det tog ca. 6-7 sekunder at evaluere ét træk. + Alexander lavede lidt omskrivninger, så TensorFlow udregnede det hurtigere og fik det ned på ca. 3-4 sekunder *pr. spil*. + Så skrev vi noget af det om til C, og nu er vi så på ca. 2 sekunder pr. spil med 1-ply, hvilket er ret vildt. + Det er så godt at Python-fortolkeren kan udvides med C! + caspervk, kan I optimere jeres bachelorprojekt med et par C-moduler? + Det er en hel lille sektion til rapporten det der. + Yeah. Kopierer bare det her verbatim ind.