Skip to content

Commit

Permalink
Release of 2024.12.03
Browse files Browse the repository at this point in the history
  • Loading branch information
MathieuMoalic committed Dec 3, 2024
1 parent 28dc97b commit 3425191
Show file tree
Hide file tree
Showing 58 changed files with 2,598 additions and 2,595 deletions.
6 changes: 3 additions & 3 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@

GitFrontend = buildFrontend {
src = ./frontend;
npmDepsHash = "sha256-wD5xGMgpdgVfTMmoIM5ed1Gg4eOkQB7Uo8kA9+ptSKY=";
npmDepsHash = "sha256-3xqQ72zsqj2zWJonKnSUi+HH4g8x4gSywF1wefOip/U=";
version = gitVersion;
};
GitBuildAmumax = with pkgs.lib.fileset;
Expand All @@ -95,12 +95,12 @@
owner = "MathieuMoalic";
repo = "amumax";
rev = releaseVersion;
hash = "sha256-6IcEr4sZRK7/B3JdbM8vSQHWXe21et9WtvqZNMHGwwY=";
hash = pkgs.lib.fakeHash;
};

ReleaseFrontend = buildFrontend {
src = "${ReleaseSrc}/frontend";
npmDepsHash = "sha256-wD5xGMgpdgVfTMmoIM5ed1Gg4eOkQB7Uo8kA9+ptSKY=";
npmDepsHash = "sha256-3xqQ72zsqj2zWJonKnSUi+HH4g8x4gSywF1wefOip/U=";
version = releaseVersion;
};

Expand Down
13 changes: 8 additions & 5 deletions justfile
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ release:
gh release view $VERSION &>/dev/null && gh release delete $VERSION -y
git show-ref --tags $VERSION &>/dev/null && git tag -d $VERSION && git push --tags
just update-flake-hashes-git
just test

just image build-cuda build-frontend build
Expand All @@ -55,16 +54,20 @@ release:
git commit -m "Release of ${VERSION}"
git push
gh release create $VERSION ./build/* --title $VERSION --notes "Release of ${VERSION}"

# We update the flake with the new version based on github
just copy-pcss
just flake-release

flake-release:
#!/usr/bin/env sh
set -euxo pipefail
VERSION=$(date -u +'%Y.%m.%d')
just update-flake-hashes-git
just update-flake-gh-hash ${VERSION}
nix run . -- -v
git add .
git commit -m "Update github hash for the release of ${VERSION}"
git push
just copy-pcss

update-flake-hashes-git:
#!/usr/bin/env sh
set -euo pipefail
Expand Down
98 changes: 49 additions & 49 deletions src/cuda/copypadmul2_wrapper.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,94 +5,94 @@ package cuda
EDITING IS FUTILE.
*/

import (
"sync"
import(
"unsafe"

"github.com/MathieuMoalic/amumax/src/cuda/cu"
"github.com/MathieuMoalic/amumax/src/engine_old/timer_old"
"sync"
)

// CUDA handle for copypadmul2 kernel
var copypadmul2_code cu.Function

// Stores the arguments for copypadmul2 kernel invocation
type copypadmul2_args_t struct {
arg_dst unsafe.Pointer
arg_Dx int
arg_Dy int
arg_Dz int
arg_src unsafe.Pointer
arg_Sx int
arg_Sy int
arg_Sz int
arg_Ms_ unsafe.Pointer
arg_Ms_mul float32
arg_vol unsafe.Pointer
argptr [11]unsafe.Pointer
type copypadmul2_args_t struct{
arg_dst unsafe.Pointer
arg_Dx int
arg_Dy int
arg_Dz int
arg_src unsafe.Pointer
arg_Sx int
arg_Sy int
arg_Sz int
arg_Ms_ unsafe.Pointer
arg_Ms_mul float32
arg_vol unsafe.Pointer
argptr [11]unsafe.Pointer
sync.Mutex
}

// Stores the arguments for copypadmul2 kernel invocation
var copypadmul2_args copypadmul2_args_t

func init() {
func init(){
// CUDA driver kernel call wants pointers to arguments, set them up once.
copypadmul2_args.argptr[0] = unsafe.Pointer(&copypadmul2_args.arg_dst)
copypadmul2_args.argptr[1] = unsafe.Pointer(&copypadmul2_args.arg_Dx)
copypadmul2_args.argptr[2] = unsafe.Pointer(&copypadmul2_args.arg_Dy)
copypadmul2_args.argptr[3] = unsafe.Pointer(&copypadmul2_args.arg_Dz)
copypadmul2_args.argptr[4] = unsafe.Pointer(&copypadmul2_args.arg_src)
copypadmul2_args.argptr[5] = unsafe.Pointer(&copypadmul2_args.arg_Sx)
copypadmul2_args.argptr[6] = unsafe.Pointer(&copypadmul2_args.arg_Sy)
copypadmul2_args.argptr[7] = unsafe.Pointer(&copypadmul2_args.arg_Sz)
copypadmul2_args.argptr[8] = unsafe.Pointer(&copypadmul2_args.arg_Ms_)
copypadmul2_args.argptr[9] = unsafe.Pointer(&copypadmul2_args.arg_Ms_mul)
copypadmul2_args.argptr[10] = unsafe.Pointer(&copypadmul2_args.arg_vol)
}
copypadmul2_args.argptr[0] = unsafe.Pointer(&copypadmul2_args.arg_dst)
copypadmul2_args.argptr[1] = unsafe.Pointer(&copypadmul2_args.arg_Dx)
copypadmul2_args.argptr[2] = unsafe.Pointer(&copypadmul2_args.arg_Dy)
copypadmul2_args.argptr[3] = unsafe.Pointer(&copypadmul2_args.arg_Dz)
copypadmul2_args.argptr[4] = unsafe.Pointer(&copypadmul2_args.arg_src)
copypadmul2_args.argptr[5] = unsafe.Pointer(&copypadmul2_args.arg_Sx)
copypadmul2_args.argptr[6] = unsafe.Pointer(&copypadmul2_args.arg_Sy)
copypadmul2_args.argptr[7] = unsafe.Pointer(&copypadmul2_args.arg_Sz)
copypadmul2_args.argptr[8] = unsafe.Pointer(&copypadmul2_args.arg_Ms_)
copypadmul2_args.argptr[9] = unsafe.Pointer(&copypadmul2_args.arg_Ms_mul)
copypadmul2_args.argptr[10] = unsafe.Pointer(&copypadmul2_args.arg_vol)
}

// Wrapper for copypadmul2 CUDA kernel, asynchronous.
func k_copypadmul2_async(dst unsafe.Pointer, Dx int, Dy int, Dz int, src unsafe.Pointer, Sx int, Sy int, Sz int, Ms_ unsafe.Pointer, Ms_mul float32, vol unsafe.Pointer, cfg *config) {
if Synchronous { // debug
func k_copypadmul2_async ( dst unsafe.Pointer, Dx int, Dy int, Dz int, src unsafe.Pointer, Sx int, Sy int, Sz int, Ms_ unsafe.Pointer, Ms_mul float32, vol unsafe.Pointer, cfg *config) {
if Synchronous{ // debug
Sync()
timer_old.Start("copypadmul2")
}

copypadmul2_args.Lock()
defer copypadmul2_args.Unlock()

if copypadmul2_code == 0 {
if copypadmul2_code == 0{
copypadmul2_code = fatbinLoad(copypadmul2_map, "copypadmul2")
}

copypadmul2_args.arg_dst = dst
copypadmul2_args.arg_Dx = Dx
copypadmul2_args.arg_Dy = Dy
copypadmul2_args.arg_Dz = Dz
copypadmul2_args.arg_src = src
copypadmul2_args.arg_Sx = Sx
copypadmul2_args.arg_Sy = Sy
copypadmul2_args.arg_Sz = Sz
copypadmul2_args.arg_Ms_ = Ms_
copypadmul2_args.arg_Ms_mul = Ms_mul
copypadmul2_args.arg_vol = vol
copypadmul2_args.arg_dst = dst
copypadmul2_args.arg_Dx = Dx
copypadmul2_args.arg_Dy = Dy
copypadmul2_args.arg_Dz = Dz
copypadmul2_args.arg_src = src
copypadmul2_args.arg_Sx = Sx
copypadmul2_args.arg_Sy = Sy
copypadmul2_args.arg_Sz = Sz
copypadmul2_args.arg_Ms_ = Ms_
copypadmul2_args.arg_Ms_mul = Ms_mul
copypadmul2_args.arg_vol = vol


args := copypadmul2_args.argptr[:]
cu.LaunchKernel(copypadmul2_code, cfg.Grid.X, cfg.Grid.Y, cfg.Grid.Z, cfg.Block.X, cfg.Block.Y, cfg.Block.Z, 0, stream0, args)

if Synchronous { // debug
if Synchronous{ // debug
Sync()
timer_old.Stop("copypadmul2")
}
}

// maps compute capability on PTX code for copypadmul2 kernel.
var copypadmul2_map = map[int]string{0: "",
52: copypadmul2_ptx_52}
var copypadmul2_map = map[int]string{ 0: "" ,
52: copypadmul2_ptx_52 }

// copypadmul2 PTX code for various compute capabilities.
const (
copypadmul2_ptx_52 = `
const(
copypadmul2_ptx_52 = `
.version 7.0
.target sm_52
.address_size 64
Expand Down Expand Up @@ -195,4 +195,4 @@ BB0_6:
`
)
)
80 changes: 40 additions & 40 deletions src/cuda/copyunpad_wrapper.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,85 +5,85 @@ package cuda
EDITING IS FUTILE.
*/

import (
"sync"
import(
"unsafe"

"github.com/MathieuMoalic/amumax/src/cuda/cu"
"github.com/MathieuMoalic/amumax/src/engine_old/timer_old"
"sync"
)

// CUDA handle for copyunpad kernel
var copyunpad_code cu.Function

// Stores the arguments for copyunpad kernel invocation
type copyunpad_args_t struct {
arg_dst unsafe.Pointer
arg_Dx int
arg_Dy int
arg_Dz int
arg_src unsafe.Pointer
arg_Sx int
arg_Sy int
arg_Sz int
argptr [8]unsafe.Pointer
type copyunpad_args_t struct{
arg_dst unsafe.Pointer
arg_Dx int
arg_Dy int
arg_Dz int
arg_src unsafe.Pointer
arg_Sx int
arg_Sy int
arg_Sz int
argptr [8]unsafe.Pointer
sync.Mutex
}

// Stores the arguments for copyunpad kernel invocation
var copyunpad_args copyunpad_args_t

func init() {
func init(){
// CUDA driver kernel call wants pointers to arguments, set them up once.
copyunpad_args.argptr[0] = unsafe.Pointer(&copyunpad_args.arg_dst)
copyunpad_args.argptr[1] = unsafe.Pointer(&copyunpad_args.arg_Dx)
copyunpad_args.argptr[2] = unsafe.Pointer(&copyunpad_args.arg_Dy)
copyunpad_args.argptr[3] = unsafe.Pointer(&copyunpad_args.arg_Dz)
copyunpad_args.argptr[4] = unsafe.Pointer(&copyunpad_args.arg_src)
copyunpad_args.argptr[5] = unsafe.Pointer(&copyunpad_args.arg_Sx)
copyunpad_args.argptr[6] = unsafe.Pointer(&copyunpad_args.arg_Sy)
copyunpad_args.argptr[7] = unsafe.Pointer(&copyunpad_args.arg_Sz)
}
copyunpad_args.argptr[0] = unsafe.Pointer(&copyunpad_args.arg_dst)
copyunpad_args.argptr[1] = unsafe.Pointer(&copyunpad_args.arg_Dx)
copyunpad_args.argptr[2] = unsafe.Pointer(&copyunpad_args.arg_Dy)
copyunpad_args.argptr[3] = unsafe.Pointer(&copyunpad_args.arg_Dz)
copyunpad_args.argptr[4] = unsafe.Pointer(&copyunpad_args.arg_src)
copyunpad_args.argptr[5] = unsafe.Pointer(&copyunpad_args.arg_Sx)
copyunpad_args.argptr[6] = unsafe.Pointer(&copyunpad_args.arg_Sy)
copyunpad_args.argptr[7] = unsafe.Pointer(&copyunpad_args.arg_Sz)
}

// Wrapper for copyunpad CUDA kernel, asynchronous.
func k_copyunpad_async(dst unsafe.Pointer, Dx int, Dy int, Dz int, src unsafe.Pointer, Sx int, Sy int, Sz int, cfg *config) {
if Synchronous { // debug
func k_copyunpad_async ( dst unsafe.Pointer, Dx int, Dy int, Dz int, src unsafe.Pointer, Sx int, Sy int, Sz int, cfg *config) {
if Synchronous{ // debug
Sync()
timer_old.Start("copyunpad")
}

copyunpad_args.Lock()
defer copyunpad_args.Unlock()

if copyunpad_code == 0 {
if copyunpad_code == 0{
copyunpad_code = fatbinLoad(copyunpad_map, "copyunpad")
}

copyunpad_args.arg_dst = dst
copyunpad_args.arg_Dx = Dx
copyunpad_args.arg_Dy = Dy
copyunpad_args.arg_Dz = Dz
copyunpad_args.arg_src = src
copyunpad_args.arg_Sx = Sx
copyunpad_args.arg_Sy = Sy
copyunpad_args.arg_Sz = Sz
copyunpad_args.arg_dst = dst
copyunpad_args.arg_Dx = Dx
copyunpad_args.arg_Dy = Dy
copyunpad_args.arg_Dz = Dz
copyunpad_args.arg_src = src
copyunpad_args.arg_Sx = Sx
copyunpad_args.arg_Sy = Sy
copyunpad_args.arg_Sz = Sz


args := copyunpad_args.argptr[:]
cu.LaunchKernel(copyunpad_code, cfg.Grid.X, cfg.Grid.Y, cfg.Grid.Z, cfg.Block.X, cfg.Block.Y, cfg.Block.Z, 0, stream0, args)

if Synchronous { // debug
if Synchronous{ // debug
Sync()
timer_old.Stop("copyunpad")
}
}

// maps compute capability on PTX code for copyunpad kernel.
var copyunpad_map = map[int]string{0: "",
52: copyunpad_ptx_52}
var copyunpad_map = map[int]string{ 0: "" ,
52: copyunpad_ptx_52 }

// copyunpad PTX code for various compute capabilities.
const (
copyunpad_ptx_52 = `
const(
copyunpad_ptx_52 = `
.version 7.0
.target sm_52
.address_size 64
Expand Down Expand Up @@ -154,4 +154,4 @@ BB0_2:
`
)
)
Loading

0 comments on commit 3425191

Please sign in to comment.