Commit Graph

2464 Commits

Author SHA1 Message Date
Hansung Kim
3729a05adc vx_spawn.c: Separate cluster-based scheduling code from original 2024-03-26 16:36:57 -07:00
Hansung Kim
f050a08d77 Write vx_spawn_tasks_cluster
This scheduling logic tries to evenly distribute warps across *all* cores,
instead of trying to fill up the first cores as much as possible.  This scheme
is necessary for the intra-cluster cores which are assumed to have equal
workloads distributed.
2024-03-26 10:45:14 -07:00
Hansung Kim
7f00e6c376 vecaddx: Change arg device address to 7fff0000 2024-03-26 10:44:33 -07:00
Hansung Kim
cc7b34ec5b vecaddx: Write args.bin and input.bin 2024-03-26 10:44:02 -07:00
Hansung Kim
ff401bdec0 Cleanup tests/.gitignore 2024-03-24 01:47:00 -07:00
Hansung Kim
7d177492b2 Move CORES_PER_CLUSTER to vx_spawn.h 2024-03-24 01:45:30 -07:00
Hansung Kim
8f3474b151 Don't clean *.bin 2024-03-24 01:45:08 -07:00
Hansung Kim
f590c4b417 Add vx_spawn.h as dependency to kernel/Makefile 2024-03-24 01:44:49 -07:00
joshua
b254281295 initial tcore impl 2024-03-21 01:29:38 -07:00
Richard Yan
c18267443f matmul kernel switch to proper fence and fsm 2024-03-20 15:22:25 -07:00
Richard Yan
94ad1850a9 implement correct gemmini fence and loop fsm support 2024-03-20 15:18:31 -07:00
joshua
f9b4509936 initial tensor core 2024-03-20 02:46:00 -07:00
joshua
978dd3bdfe seemingly working fp32 implementation 2024-03-19 17:56:59 -07:00
Hansung Kim
12ee2a3a0f Write cluster-aware thread scheduling
NOTE: cores per cluster is hardcoded as a constant
2024-03-18 16:40:02 -07:00
Hansung Kim
3e6771237f Merge remote-tracking branch 'sungwoong/master' into kernels 2024-03-14 09:48:31 -07:00
Hansung Kim
2036d37840 sgemm_wg: Prevent run-ahead using ternary flags; reduce mem accesses 2024-03-13 21:35:24 -07:00
Hansung Kim
510a834db5 sgemm_wg: Implement software barrier for inter-core synchronization 2024-03-12 15:34:42 -07:00
Hansung Kim
fbe872c831 sgemm_wg: Add missing makefile dep to common.h 2024-03-12 15:34:17 -07:00
joshua
beb3dce46d integer reduction unit 2024-03-06 01:39:17 -08:00
Sungwoong Ha
3c2a266d37 second pass 2024-03-01 21:27:26 -08:00
Sungwoong Ha
a9709edae2 first pass 2024-03-01 21:05:52 -08:00
Hansung Kim
6f4dfe5a0e sgemm_wg: Implement 2D threadtiling 2024-02-29 14:40:54 -08:00
Hansung Kim
a06b2dd20e sgemm_wg: Cleanup & proper unroll 2024-02-28 21:17:42 -08:00
Hansung Kim
46f242e520 sgemm_wg: Constantify BM/BN/BK/TM, computationally set gridsize and TB/core 2024-02-27 22:23:25 -08:00
Hansung Kim
27646bb507 sgemm_wg: Implement multiple C per thread with sliding A/B blocks 2024-02-27 22:06:01 -08:00
Hansung Kim
a2ea27b2b5 vx_spawn: Add spawn_tasks_contiguous_all_stub
Spawns tasks in a way that the threads in a warp see contiguous
thread_id, unlike the original variant where each thread were allocated
a range of thread_id that spans the number of batches.

E.g. in a 4-thread config, instead of mapping IDs (0,2,4,6)->(1,3,5,7),
map (0,1,2,3)->(4,5,6,7).

TODO remaining logic not implemented.
2024-02-27 15:46:02 -08:00
Hansung Kim
2b1b5fe537 convolution: Fix write_operand_file after upstream merge 2024-02-27 15:45:22 -08:00
Hansung Kim
f1e7407d3a sgemm_wg: Run multiple threadblock per core 2024-02-27 15:44:04 -08:00
Richard Yan
5b1c527186 Merge branch 'kernels' of https://github.com/hansungk/vortex into kernels 2024-02-24 00:27:23 -08:00
Richard Yan
914864206a MMIO gemmini matmul kernel 2024-02-24 00:27:16 -08:00
Sungwoong Ha
be7d87c82d temp 2024-02-22 16:31:42 -08:00
Hansung Kim
d2da0d3394 sgemm_wg: Parameterize threadblock dimensions 2024-02-17 18:05:59 -08:00
Hansung Kim
301f1ca260 sgemm_wg: Implement blocking over k-dimension 2024-02-16 16:20:57 -08:00
Hansung Kim
5f79e8a3f1 sgemm_wg: reference matmul in cpu 2024-02-12 22:29:38 -08:00
Hansung Kim
6b420aceb6 sgemm_wg: write simple C=A*A matmul 2024-02-12 22:22:28 -08:00
Hansung Kim
a43d5eb1a7 Merge remote-tracking branch 'upstream/master' into kernels 2024-02-12 20:50:32 -08:00
Hansung Kim
6a1a506b64 sgemm_wg: save args and input bin 2024-02-12 20:49:08 -08:00
Hansung Kim
f586ab28df vecadd: save operand to file 2024-02-12 20:49:08 -08:00
Hansung Kim
5a216ef9ca flops: unroll by 16 2024-02-12 20:49:08 -08:00
Blaise Tine
5f2b10b8a6 minor update 2024-02-09 21:20:23 -08:00
Blaise Tine
3fee1a6193 minor update 2024-02-09 20:34:44 -08:00
Richard Yan
c258557999 Merge branch 'kernels' of https://github.com/hansungk/vortex into kernels 2024-02-08 17:05:37 -08:00
Richard Yan
12bdab8043 update gemmini matmul kernel 2024-02-08 17:00:19 -08:00
Blaise Tine
ae7b01405c CI minor update 2024-02-08 14:10:00 -08:00
Hansung Kim
ad8bf9b223 Add sgemm_wg C kernel 2024-02-07 21:31:08 -08:00
Blaise Tine
be0db6e1a5 minor update 2024-02-04 20:32:05 -08:00
Blaise Tine
50028c1a33 Merge remote-tracking branch 'origin' into develop 2024-02-04 20:19:30 -08:00
Blaise Tine
8d4b6c804f minor update 2024-02-04 20:17:12 -08:00
Blaise Tine
6f7a389a1f arbiters unlock refactoring 2024-02-04 20:16:18 -08:00
Blaise Tine
fe15647f98 minor update 2024-02-04 02:11:53 -08:00