Modified Makefile for Linux and updated Visual Studio project files for Linux support, Added infromation to README
This commit is contained in:
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
linux/build
|
||||||
|
windows/build
|
||||||
|
|
||||||
|
linux/boat_sim
|
||||||
|
windows/boat_sim.exe
|
20
README.md
20
README.md
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
Cílem projektu je optimalizovat algoritmus pro výpočet vln na vodě. Tento algoritmus je implementován v souboru `Ocean.cpp`, konkrétně ve funkci `updateVertices` a jejích volaných funkcích. Vaším úkolem bude vytvořit optimalizovanou verzi této funkce pomocí **SSE, AVX** nebo **AVX2**.
|
Cílem projektu je optimalizovat algoritmus pro výpočet vln na vodě. Tento algoritmus je implementován v souboru `Ocean.cpp`, konkrétně ve funkci `updateVertices` a jejích volaných funkcích. Vaším úkolem bude vytvořit optimalizovanou verzi této funkce pomocí **SSE, AVX** nebo **AVX2**.
|
||||||
|
|
||||||
Kód můžete implementovat pomocí **intrinsic funkcí** (změňte v `Ocean.h` makro `ASM_TYPE` na `INTRINSIC`) nebo čistě v **GCC inline assembly** v souboru `xlogin00.s` (změňte `ASM_TYPE` na `CLEAR_ASM`).
|
Kód můžete implementovat pomocí **intrinsic funkcí** (změňte v `Ocean.h` makro `ASM_TYPE` na `INTRINSIC`) nebo čistě v **GCC inline assembly** v souboru `xlogin00.s` (změňte `ASM_TYPE` na `CLEAR_ASM`). Pokud použijete intrinsic funkce, budete řešit zadání v jednodušší variantě, a projekt bude hodnocen přísněji.
|
||||||
|
|
||||||
## Struktura dat
|
## Struktura dat
|
||||||
|
|
||||||
@ -47,6 +47,16 @@ Odevzdávat budete následující soubory:
|
|||||||
- `xlogin00.s`
|
- `xlogin00.s`
|
||||||
- `dokumentace.pdf`
|
- `dokumentace.pdf`
|
||||||
|
|
||||||
|
|
||||||
|
## Použití velkých jazykových modelů (ChatGPT, ....).
|
||||||
|
|
||||||
|
Během řešení projektu můžete využít jazykové modely za následujících podmínek: budou použity pouze na části kódu, danému kódu budete rozumět a v dokumentaci uvedete, k čemu jste jazykový model použili.
|
||||||
|
|
||||||
|
## Obhajoba
|
||||||
|
|
||||||
|
Na poslední cvičení bude obhajoba projektu, cílem je ukázat, že projektu rozumíte a víte, co jednotlivé části kódu dělají. V případě, že nebudete schopni vysvětlit, co váš kód dělá, bude to mít negativní vliv na hodnocení.
|
||||||
|
|
||||||
|
|
||||||
## Překlad a spuštění
|
## Překlad a spuštění
|
||||||
|
|
||||||
### Windows + VS Code
|
### Windows + VS Code
|
||||||
@ -63,3 +73,11 @@ Pro **Debian-based OS** (Ubuntu, Debian):
|
|||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install freeglut3-dev libglew-dev libsoil-dev libgl-dev libglu-dev
|
sudo apt install freeglut3-dev libglew-dev libsoil-dev libgl-dev libglu-dev
|
||||||
```
|
```
|
||||||
|
|
||||||
|
V případě, že používaté VS Code na linuxu, povolte si v nastavení (Preferences) přidávání breakpoint do neznámých souboru (volba Allow Breakpoints Everywhere).
|
||||||
|
|
||||||
|
|
||||||
|
## Bug, bugs,....
|
||||||
|
|
||||||
|
Pokud narazíte na problém, napište na goldmann@fit.vutbr.cz.
|
||||||
|
|
||||||
|
19
linux/.vscode/c_cpp_properties.json
vendored
19
linux/.vscode/c_cpp_properties.json
vendored
@ -1,20 +1,15 @@
|
|||||||
{
|
{
|
||||||
"configurations": [
|
"configurations": [
|
||||||
{
|
{
|
||||||
"name": "Win32",
|
"name": "Linux",
|
||||||
"includePath": [
|
"includePath": [
|
||||||
"${workspaceFolder}/**",
|
"${workspaceFolder}/include"
|
||||||
"${workspaceFolder}\\..\\include"
|
|
||||||
],
|
],
|
||||||
"defines": [
|
"defines": [],
|
||||||
"_DEBUG",
|
"compilerPath": "/usr/bin/gcc",
|
||||||
"UNICODE",
|
"cStandard": "c17",
|
||||||
"_UNICODE"
|
"cppStandard": "c++14",
|
||||||
],
|
"intelliSenseMode": "linux-clang-x64"
|
||||||
"compilerPath": "${workspaceFolder}\\..\\mingw64\\bin\\g++.exe",
|
|
||||||
"cStandard": "c11",
|
|
||||||
"cppStandard": "c++17",
|
|
||||||
"intelliSenseMode": "gcc-x64"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"version": 4
|
"version": 4
|
||||||
|
2
linux/.vscode/launch.json
vendored
2
linux/.vscode/launch.json
vendored
@ -5,7 +5,7 @@
|
|||||||
"name": "(gdb) Launch",
|
"name": "(gdb) Launch",
|
||||||
"type": "cppdbg",
|
"type": "cppdbg",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "boat_sim",
|
"program": "${workspaceFolder}/./boat_sim",
|
||||||
"args": [],
|
"args": [],
|
||||||
"stopAtEntry": true,
|
"stopAtEntry": true,
|
||||||
"cwd": "${workspaceFolder}",
|
"cwd": "${workspaceFolder}",
|
||||||
|
2
linux/.vscode/tasks.json
vendored
2
linux/.vscode/tasks.json
vendored
@ -29,7 +29,7 @@
|
|||||||
{
|
{
|
||||||
"label": "Run",
|
"label": "Run",
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
"command": "boat_sim",
|
"command": "make run",
|
||||||
"options": {
|
"options": {
|
||||||
"cwd": "${workspaceFolder}"
|
"cwd": "${workspaceFolder}"
|
||||||
},
|
},
|
||||||
|
@ -4,9 +4,10 @@
|
|||||||
CXX = g++
|
CXX = g++
|
||||||
CXXFLAGS = -Wall -g -mavx -msse4 # -Wall for more warnings, -g for debugging symbols
|
CXXFLAGS = -Wall -g -mavx -msse4 # -Wall for more warnings, -g for debugging symbols
|
||||||
INC_DIR = include
|
INC_DIR = include
|
||||||
LIBS = -lfreeglut -lglew32 -lSOIL -lopengl32 -lglu32
|
LIBS = -lglut -lSOIL -lGL -lGLEW -lGLU
|
||||||
LIB_DIR = ..\libs
|
LIB_DIRS = /usr/lib /usr/lib/x86_64-linux-gnu
|
||||||
LDFLAGS = -L$(LIB_DIR)
|
|
||||||
|
LDFLAGS = $(addprefix -L, $(LIB_DIRS))
|
||||||
|
|
||||||
# Directories
|
# Directories
|
||||||
SRC_DIR = src
|
SRC_DIR = src
|
||||||
@ -45,7 +46,7 @@ $(BUILD_DIR)/%.o: $(SRC_DIR)/%.s
|
|||||||
|
|
||||||
# Clean target
|
# Clean target
|
||||||
clean:
|
clean:
|
||||||
rm -rf $(BUILD_DIR)
|
rm $(BUILD_DIR)/*
|
||||||
|
|
||||||
# Debug build target
|
# Debug build target
|
||||||
debug: CXXFLAGS += -DDEBUG -g
|
debug: CXXFLAGS += -DDEBUG -g
|
||||||
|
Reference in New Issue
Block a user