From 6f6741a66970f05f84dd8a5cb89686b27a6bf5c9 Mon Sep 17 00:00:00 2001 From: Alice Date: Wed, 4 Oct 2023 12:13:31 +0100 Subject: [PATCH] vault backup: 2023-10-04 12:13:31 --- .obsidian/workspace.json | 14 +++++++------- 4a1s/CP/PL - Aula 4.md | 15 ++++++++++++--- Pasted image 20231004115209.png | Bin 25023 -> 0 bytes 3 files changed, 19 insertions(+), 10 deletions(-) delete mode 100644 Pasted image 20231004115209.png diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index b05e65f..5832932 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -4,11 +4,11 @@ "type": "split", "children": [ { - "id": "acc5682fcfccc7e6", + "id": "3315871ba65ef140", "type": "tabs", "children": [ { - "id": "98e0287d38212615", + "id": "37b14566e757368b", "type": "leaf", "state": { "type": "markdown", @@ -69,7 +69,7 @@ } ], "direction": "horizontal", - "width": 300 + "width": 328.5 }, "right": { "id": "d8cc89662b1baf06", @@ -158,13 +158,13 @@ "digitalgarden:Digital Garden Publication Center": false } }, - "active": "98e0287d38212615", + "active": "37b14566e757368b", "lastOpenFiles": [ - "Pasted image 20231004115209.png", "Images/Pasted image 20231004115725.png", - "4a1s/CP/PL - Aula 4.md", - "Images", "Images/Pasted image 20231004115135.png", + "4a1s/CP/PL - Aula 4.md", + "Images/Pasted image 20231004115209.png", + "Images", "4a1s/CP/PL - Aula 3.md", "4a1s/CP/PL - Aula 2.md", "4a1s/RAS/Projeto.md", diff --git a/4a1s/CP/PL - Aula 4.md b/4a1s/CP/PL - Aula 4.md index c3b7703..5d4799d 100644 --- a/4a1s/CP/PL - Aula 4.md +++ b/4a1s/CP/PL - Aula 4.md @@ -9,7 +9,7 @@ B -> consecutive elements in a collumn Não vai ser vetorizável. -#### b) +#### b) Enable vectorization result of change cycles to i, k , j : A -> same element C -> consecutive elements in a row -> consecutive access in the vector @@ -29,8 +29,8 @@ Without vectorization: With vectorization: ![[Pasted image 20231004115135.png]] - -#### c) +Estimated: ( n^3 / 2 )* 8 +#### c)Measure and analyze results | N | Version | Time | CPI | \#I | | --- | -------- | ---- | --- | --- | @@ -43,3 +43,12 @@ With vectorization: >srun --partition=cpar perf stat -e cycles,instructions ./a.out +#### d) Vectorization fine-tuning +Ganhos de 4 vezes mais. + + + + +## Ex. 3 +#### a) +2 operações em FP \ No newline at end of file diff --git a/Pasted image 20231004115209.png b/Pasted image 20231004115209.png deleted file mode 100644 index 72f1b386d88001d3a5922c2c36c04ac7eac1b947..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25023 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