mirror of https://github.com/Nonannet/copapy.git
helper scripts updated
This commit is contained in:
parent
b8613f3d98
commit
d2db667741
|
|
@ -1,30 +1,36 @@
|
||||||
echo ------------------------------
|
python stencils/generate_stencils.py bin/stencils.c
|
||||||
|
|
||||||
|
echo -------------x86_64 - 64 bit-----------------
|
||||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x64
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x64
|
||||||
|
echo - Compile stencil test...
|
||||||
|
cl /Zi /Od stencils\test.c /Fe:bin\test.exe
|
||||||
|
|
||||||
echo - Build runner for Windows 64 bit...
|
echo - Build runner for Windows 64 bit...
|
||||||
cl /Zi /Od /DENABLE_BASIC_LOGGING src\coparun\runmem.c src\coparun\coparun.c src\coparun\mem_man.c /Fe:bin\coparun.exe
|
cl /Zi /Od /DENABLE_BASIC_LOGGING src\coparun\runmem.c src\coparun\coparun.c src\coparun\mem_man.c /Fe:bin\coparun.exe
|
||||||
|
|
||||||
REM Optimized:
|
REM Optimized:
|
||||||
REM cl /O2 src\coparun\runmem.c src\coparun\coparun.c src\coparun\mem_man.c /Fe:bin\coparun.exe
|
REM cl /O2 src\coparun\runmem.c src\coparun\coparun.c src\coparun\mem_man.c /Fe:bin\coparun.exe
|
||||||
|
|
||||||
echo - Build stencils for Windows 64 bit...
|
echo - Build stencils for 64 bit...
|
||||||
python stencils/generate_stencils.py --abi ms bin/stencils.c
|
wsl gcc -fno-pic -c bin/stencils.c -O3 -o src/copapy/obj/stencils_x86_64_O3.o
|
||||||
wsl gcc -fno-pic -c bin/stencils.c -O3 -o src/copapy/obj/stencils_AMD64_O3.o
|
|
||||||
|
|
||||||
echo ------------------------------
|
echo ---------------x86 - 32 bit---------------
|
||||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x86
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x86
|
||||||
|
|
||||||
echo - Build runner for Windows 32 bit...
|
echo - Build runner for Windows 32 bit...
|
||||||
cl /Zi /Od /DENABLE_BASIC_LOGGING src\coparun\runmem.c src\coparun\coparun.c src\coparun\mem_man.c /Fe:bin\coparun-x86.exe
|
cl /Zi /Od /DENABLE_BASIC_LOGGING src\coparun\runmem.c src\coparun\coparun.c src\coparun\mem_man.c /Fe:bin\coparun-x86.exe
|
||||||
|
|
||||||
echo - Build stencils for Windows 32 bit...
|
echo - Build runner for linux x86 32 bit...
|
||||||
|
wsl gcc -m32 -static -Wall -Wextra -Wconversion -Wsign-conversion -Wshadow -Wstrict-overflow -O3 -DENABLE_LOGGING src/coparun/runmem.c src/coparun/coparun.c src/coparun/mem_man.c -o bin/coparun-i686
|
||||||
|
|
||||||
|
echo - Build stencils x86 32 bit...
|
||||||
wsl gcc -m32 -fno-pic -c bin/stencils.c -O3 -o src/copapy/obj/stencils_x86_O3.o
|
wsl gcc -m32 -fno-pic -c bin/stencils.c -O3 -o src/copapy/obj/stencils_x86_O3.o
|
||||||
|
|
||||||
|
|
||||||
echo ------------------------------
|
echo --------------arm64 64 bit----------------
|
||||||
echo - Build stencils for aarch64...
|
echo - Build stencils for aarch64...
|
||||||
python stencils/generate_stencils.py bin/stencils.c
|
wsl aarch64-linux-gnu-gcc -fno-pic -c bin/stencils.c -O3 -o src/copapy/obj/stencils_arm64_O3.o
|
||||||
wsl aarch64-linux-gnu-gcc -fno-pic -c bin/stencils.c -O3 -o src/copapy/obj/stencils_aarch64_O3.o
|
|
||||||
|
|
||||||
echo ------------------------------
|
echo ------------------------------
|
||||||
echo - Build runner for Aarch64...
|
echo - Build runner for Aarch64...
|
||||||
wsl aarch64-linux-gnu-gcc -static -Wall -Wextra -Wconversion -Wsign-conversion -Wshadow -Wstrict-overflow -O3 -DENABLE_LOGGING src/coparun/runmem.c src/coparun/coparun.c src/coparun/mem_man.c -o bin/coparun-aarch64
|
wsl aarch64-linux-gnu-gcc -static -Wall -Wextra -Wconversion -Wsign-conversion -Wshadow -Wstrict-overflow -O3 -DENABLE_LOGGING src/coparun/runmem.c src/coparun/coparun.c src/coparun/mem_man.c -o bin/coparun-aarch64
|
||||||
|
|
|
||||||
|
|
@ -13,29 +13,19 @@ mkdir -p $DEST
|
||||||
|
|
||||||
# -------------- Compile stencils --------------
|
# -------------- Compile stencils --------------
|
||||||
|
|
||||||
# Windows x86_64 (ARM64)
|
|
||||||
python3 stencils/generate_stencils.py --abi ms $SRC
|
|
||||||
gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_AMD64_$OPT.o
|
|
||||||
|
|
||||||
# Windows x86
|
|
||||||
gcc-13 $FLAGS -m32 -$OPT -c $SRC -o $DEST/stencils_x86_$OPT.o
|
|
||||||
|
|
||||||
|
|
||||||
# Native x86_64
|
|
||||||
python3 stencils/generate_stencils.py $SRC
|
python3 stencils/generate_stencils.py $SRC
|
||||||
|
|
||||||
|
# x86_64
|
||||||
gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_x86_64_$OPT.o
|
gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_x86_64_$OPT.o
|
||||||
|
|
||||||
# Native i686
|
# x86 - 32 bit
|
||||||
cp $DEST/stencils_x86_$OPT.o $DEST/stencils_i686_$OPT.o
|
gcc-13 $FLAGS -m32 -$OPT -c $SRC -o $DEST/stencils_x86_$OPT.o
|
||||||
|
|
||||||
# ARM64 linux (aarch64)
|
# ARM64 linux (aarch64)
|
||||||
aarch64-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_aarch64_$OPT.o
|
aarch64-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_arm64_$OPT.o
|
||||||
|
|
||||||
# ARM64 macos (copy aarch64)
|
|
||||||
cp $DEST/stencils_aarch64_$OPT.o $DEST/stencils_arm64_$OPT.o
|
|
||||||
|
|
||||||
# ARMv7
|
# ARMv7
|
||||||
arm-linux-gnueabihf-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_armv7_$OPT.o
|
arm-linux-gnueabihf-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_arm_$OPT.o
|
||||||
|
|
||||||
# PowerPC64LE
|
# PowerPC64LE
|
||||||
# powerpc64le-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_ppc64le_$OPT.o
|
# powerpc64le-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_ppc64le_$OPT.o
|
||||||
|
|
@ -50,7 +40,7 @@ mips-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_mips_$OPT.o
|
||||||
mipsel-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_mipsel_$OPT.o
|
mipsel-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_mipsel_$OPT.o
|
||||||
|
|
||||||
# RISCV 32 Bit
|
# RISCV 32 Bit
|
||||||
# riscv64-linux-gnu-gcc-13 $FLAGS -$OPT -march=rv32imac -mabi=ilp32 -c $SRC -o $DEST/stencils_riscv32_$OPT.o
|
# riscv64-linux-gnu-gcc-13 $FLAGS -$OPT -march=rv32imac -mabi=ilp32 -c $SRC -o $DEST/stencils_riscv_$OPT.o
|
||||||
|
|
||||||
# RISCV 64 Bit
|
# RISCV 64 Bit
|
||||||
riscv64-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_riscv64_$OPT.o
|
riscv64-linux-gnu-gcc-13 $FLAGS -$OPT -c $SRC -o $DEST/stencils_riscv64_$OPT.o
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,16 @@
|
||||||
python tools/make_example.py
|
python tools/make_example.py
|
||||||
REM python tools/extract_code.py "bin/test.copapy" "bin/test.copapy.bin"
|
REM wsl qemu-aarch64 bin/coparun-aarch64 bin/test-aarch64.copapy bin/test-aarch64.copapy.bin
|
||||||
wsl qemu-aarch64 bin/coparun-aarch64 bin/test-aarch64.copapy bin/test-aarch64.copapy.bin
|
REM wsl aarch64-linux-gnu-objdump -D -b binary -m aarch64 --adjust-vma=0x5000 bin/test-aarch64.copapy.bin
|
||||||
wsl aarch64-linux-gnu-objdump -D -b binary -m aarch64 --adjust-vma=0x5000 bin/test-aarch64.copapy.bin
|
|
||||||
|
|
||||||
python tools/extract_code.py "bin/test-aarch64.copapy" "bin/test-aarch64.copapy2.bin"
|
REM wsl aarch64-linux-gnu-objdump -D -b binary -m aarch64 --adjust-vma=0x5000 bin/test-aarch64.copapy2.bin
|
||||||
wsl aarch64-linux-gnu-objdump -D -b binary -m aarch64 --adjust-vma=0x5000 bin/test-aarch64.copapy2.bin
|
|
||||||
|
|
||||||
REM wsl objdump -D -b binary -m i386:x86-64 --adjust-vma=0x1000 bin/test.copapy.bin
|
bin\coparun bin/test.copapy bin/test.copapy.bin
|
||||||
|
wsl objdump -D -b binary -m i386:x86-64 --adjust-vma=0x500000 bin/test.copapy.bin
|
||||||
|
|
||||||
REM wsl aarch64-linux-gnu-objdump -d -x src/copapy/obj/stencils_aarch64_O3.o
|
REM wsl aarch64-linux-gnu-objdump -d -x src/copapy/obj/stencils_arm64_O3.o
|
||||||
|
|
||||||
REM wsl objdump -D -b binary -m i8086 --adjust-vma=0x5000 bin/test-x86.copapy.bin
|
REM wsl objdump -D -b binary -m i386 --adjust-vma=0x5000 bin/test-x86.copapy.bin
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
REM wsl objdump -d -x src/copapy/obj/stencils_x86_O3.o
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
from copapy import variable
|
from copapy import variable
|
||||||
from copapy.backend import Write, compile_to_dag, stencil_db_from_package
|
from copapy.backend import Write, compile_to_dag, stencil_db_from_package
|
||||||
from copapy._binwrite import Command
|
from copapy._binwrite import Command
|
||||||
|
import copapy as cp
|
||||||
|
|
||||||
|
|
||||||
def compile_to_x86_64() -> None:
|
def compile_to_x86_64() -> None:
|
||||||
|
|
@ -26,6 +27,30 @@ def compile_to_x86_64() -> None:
|
||||||
dw.to_file('bin/test.copapy')
|
dw.to_file('bin/test.copapy')
|
||||||
|
|
||||||
|
|
||||||
|
def compile_to_x86() -> None:
|
||||||
|
"""Test compilation of a simple program for x86 32 bit."""
|
||||||
|
c1 = variable(9.0)
|
||||||
|
|
||||||
|
#ret = [c1 / 4, c1 / -4, c1 // 4, c1 // -4, (c1 * -1) // 4]
|
||||||
|
ret = [c1 // 3.3 + 5]
|
||||||
|
#ret = [cp.sqrt(c1)]
|
||||||
|
#c2 = cp._math.get_42()
|
||||||
|
#ret = [c2]
|
||||||
|
ret = [cp.sin(variable(2.5))]
|
||||||
|
|
||||||
|
out = [Write(r) for r in ret]
|
||||||
|
|
||||||
|
sdb = stencil_db_from_package('x86')
|
||||||
|
dw, _ = compile_to_dag(out, sdb)
|
||||||
|
|
||||||
|
dw.write_com(Command.DUMP_CODE)
|
||||||
|
|
||||||
|
print('* Data to runner:')
|
||||||
|
dw.print()
|
||||||
|
|
||||||
|
dw.to_file('bin/test-x86.copapy')
|
||||||
|
|
||||||
|
|
||||||
def compile_to_aarch64() -> None:
|
def compile_to_aarch64() -> None:
|
||||||
"""Test compilation of a simple program for aarch64."""
|
"""Test compilation of a simple program for aarch64."""
|
||||||
c1 = variable(9.0)
|
c1 = variable(9.0)
|
||||||
|
|
@ -38,7 +63,7 @@ def compile_to_aarch64() -> None:
|
||||||
|
|
||||||
out = [Write(r) for r in ret]
|
out = [Write(r) for r in ret]
|
||||||
|
|
||||||
sdb = stencil_db_from_package('aarch64')
|
sdb = stencil_db_from_package('arm64')
|
||||||
dw, _ = compile_to_dag(out, sdb)
|
dw, _ = compile_to_dag(out, sdb)
|
||||||
|
|
||||||
dw.write_com(Command.DUMP_CODE)
|
dw.write_com(Command.DUMP_CODE)
|
||||||
|
|
@ -51,4 +76,5 @@ def compile_to_aarch64() -> None:
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
compile_to_x86_64()
|
compile_to_x86_64()
|
||||||
|
compile_to_x86()
|
||||||
compile_to_aarch64()
|
compile_to_aarch64()
|
||||||
|
|
|
||||||
|
|
@ -14,10 +14,3 @@ gcc-12 $FLAGS -c $SRC -O0 -o $DEST/stencils_x86_64_O0.o
|
||||||
gcc-12 $FLAGS -c $SRC -O1 -o $DEST/stencils_x86_64_O1.o
|
gcc-12 $FLAGS -c $SRC -O1 -o $DEST/stencils_x86_64_O1.o
|
||||||
gcc-12 $FLAGS -c $SRC -O2 -o $DEST/stencils_x86_64_O2.o
|
gcc-12 $FLAGS -c $SRC -O2 -o $DEST/stencils_x86_64_O2.o
|
||||||
gcc-12 $FLAGS -c $SRC -O3 -o $DEST/stencils_x86_64_O3.o
|
gcc-12 $FLAGS -c $SRC -O3 -o $DEST/stencils_x86_64_O3.o
|
||||||
|
|
||||||
python stencils/generate_stencils.py --abi ms $SRC
|
|
||||||
|
|
||||||
gcc-12 $FLAGS -c $SRC -O0 -o $DEST/stencils_AMD64_O0.o
|
|
||||||
gcc-12 $FLAGS -c $SRC -O1 -o $DEST/stencils_AMD64_O1.o
|
|
||||||
gcc-12 $FLAGS -c $SRC -O2 -o $DEST/stencils_AMD64_O2.o
|
|
||||||
gcc-12 $FLAGS -c $SRC -O3 -o $DEST/stencils_AMD64_O3.o
|
|
||||||
Loading…
Reference in New Issue