helper scripts updated

This commit is contained in:
Nicolas 2025-11-10 20:09:54 +01:00
parent b8613f3d98
commit d2db667741
5 changed files with 61 additions and 43 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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()

View File

@ -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