Commit Graph

22308 Commits

Author SHA1 Message Date
Bobby R. Bruce
34f6bc4501 misc,tests: Fix caching in daily tests 2024-10-01 08:18:55 -07:00
Junshi Wang
a25d9a126f arch-arm: Add recursive reduce in Neon instruction.
FMAXV, FMINV, FMAXNMV, FMINNMV and ADDV instructions perform recursive
reduction. Different reduction methods lie to different result when
handle NaN values.

Reuse the template of `twoRegAcrossInstX`. Add one more option
`recursive` for recursive reduction.

Change-Id: I69e690ce7668baee818542d3ea463f7a5f269a69
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
2024-09-30 16:31:35 +01:00
Giacomo Travaglini
8381e1c5d3 mem-cache: Helper functions to allow dynamic configuration of partitioning policies (#1609)
This PR is doing a simple refactoring of some partitioning policies. It
moves existing functionalities
within PP methods so that they can be called multiple times throughout
the simulation.
Therefore allowing a dynamic adjustment of the partitioning scheme
2024-09-27 00:01:18 +02:00
Bobby R. Bruce
277b5be4dd arch-arm: Add a method to determine External Abort (#1610)
- Add `isExternalAbort()` in `AbortFault<T>` to determine external
abort.
- Add `virtual isExternalAbort()` in `ArmFault` so the method can be
used in base class.
- Set iss.ea by `isExternalAbort()`
2024-09-26 14:41:33 -07:00
Erin (Jianghua) Le
e987c60a4c tests: Add Pannotia GPU Tests (#1584)
This PR adds the Pannotia GPU tests.
2024-09-26 14:39:39 -07:00
Bobby R. Bruce
054790ad47 ext: Fix GCC v13+ comp of systemc due to problematic overloaded-virtual warn (#1576)
Fixes #1121 in line with the following suggesting:

https://github.com/gem5/gem5/issues/1121#issuecomment-2352743409
2024-09-26 14:32:20 -07:00
Bobby R. Bruce
a240ff8d32 misc,tests: Fix caching in daily tests 2024-09-26 11:12:52 -07:00
Bobby R. Bruce
e3fd7dcaec misc,tests: Remove cache store from dramsys test 2024-09-26 11:10:32 -07:00
Ivana Mitrovic
6bb1c9638c util: Update gem5-resources-manager (#1604)
Bumps [cryptography](https://github.com/pyca/cryptography) from 42.0.4
to 43.0.1.
2024-09-26 10:09:38 -07:00
Junshi Wang
a4bacb9823 arch-arm: Add a method to determine External Abort.
- Add `isExternalAbort()` in `AbortFault<T>` to determine external abort.
- Add `virtual isExternalAbort()` in `ArmFault` so the method can be
used in base class.
- Set iss.ea by `isExternalAbort()`.

Change-Id: I01c22dc46958ab424b389af96d3c3b6243cbc671
2024-09-26 14:05:09 +01:00
Junshi Wang
9a7a661c66 arch-arm: Set tranMethod for external Data Abort.
The External Data Abort may not set TranMethod, and it leads to assert
error.

- Make `ArmFault::update` virtual.
- Implement override `update` in `AbortFault<T>` to set TranMethod.

Change-Id: I49e18799df8420b214b6059ffa756a13edf343d5
2024-09-26 14:04:17 +01:00
Giacomo Travaglini
b232204b49 mem-cache: Allow dynamic configuration of the Way pp
Change-Id: I1ba9266b24ebc9563f9380fcf155cdc436b2e376
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
2024-09-26 10:21:46 +01:00
Giacomo Travaglini
fdcfc28cf4 mem-cache: Allow dynamic configuration of MaxCapacity pp
This will allow gem5 to configure the maximum capacity of a
partition dynamically during simulation, rather than
having it statically defined at construction time

Change-Id: Ib55c9990a6bc2930abaf2438c13337acc643520f
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
2024-09-26 10:21:21 +01:00
Giacomo Travaglini
3100418fb1 mem-cache: Store totalBlockCount directly in MaxCapacity pp
In this way we actually need to store one unsigned integer instead of
two. We also won't need to recompute the total number of cache blocks
whenever we will adapt this policy to be dynamically modified

Change-Id: Ia8cf906539d1891b6cdb821f2a74628127dc68c6
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
2024-09-26 10:20:57 +01:00
Junshi Wang
bf61bd127f arch-arm: Add support of AArch32 VCVTA/P/N/M instructions.
Add decoder and function of AArch32 VCVTA, VCVTP, VCVTN and VCVTM
instructions. Support both 16-bit and 32-bit variants.

Only support A32 encoding.

Change-Id: I6ece0e1b779f9a7cc9d709894a49a7fdcda28373
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
2024-09-26 10:02:23 +02:00
Ronchi1997
e17875b7c7 misc: Correctly display build information (#1603)
See: #1591

Co-authored-by: Ronchi <ronchi@qq.com>
2024-09-25 14:23:51 -07:00
aperais
36264938db misc: Make random gen portable across compilers. (#1580)
Replace std::uniform_*_distribution by custom code
to make random number generation in gem5 portable across
compilers.

Of note, FP random number generation was not uniformly
distributed, and this PR does not fix that issue.

Thanks to Chandana S. Deshpande (deshpande.s.chandana@gmail.com)
for uncovering the issue.

Co-authored-by: Arthur Perais <arthur.perais@univ-grenoble-alpes.fr>
2024-09-25 07:31:00 -07:00
Saúl
d1ce4fb6c7 arch-riscv: add VLEN/ELEN as class attributes for all vec insts (#1538)
This refactor attempts to homogenize all riscv's vector (macro/micro)
instruction classes so that ELEN and VLEN are guaranteed to be a class
attribute. Since both are constant, all instructions will get it on the
decoding process passed through to their vector base class.

This allows the removal of VLEN in the PC state and also in some
constructor default parameters (solves issue #1207).

Change-Id: I6f0471004335f49b00b015c37e95dc7f9569e303
2024-09-24 14:32:37 -07:00
Yu-Cheng Chang
e9ea18000d arch-riscv: Move static GDB methods to RemoteGDB virtual methods (#1590)
Move getRvType & getPrivilegeModeSet static methods into
RiscvISA::RemoteGDB virtual methods allows the derived
RiscvISA::RemoteGDB to override it without change a lot of methods in
base methods

Change-Id: I3cbb9cf1fdee4a298e903bb4a0a5683c042b749d
2024-09-24 07:46:56 -07:00
Bobby R. Bruce
2fc44a50f8 gpu-compute: Fix '64kB' to '64KiB' in gpu-compute (#1594)
64kB, in these cases, will cast to 64KiB regardless. To improve
readability and understanding of these objects, this patch changes there
SI Prefix (kB -> KiB).
2024-09-23 15:25:43 -07:00
Bobby R. Bruce
d74d550af4 misc,tests: Improve daily cache handling. 2024-09-23 14:20:29 -07:00
Bobby R. Bruce
6af68bcf81 tests,misc: Update weekly/daily caches 2024-09-23 13:16:01 -07:00
Bobby R. Bruce
5214c8b0cb misc, tests: Add missing build/ALL cache in daily-tests.yaml 2024-09-23 12:05:42 -07:00
Bobby R. Bruce
162ea1fa74 tests,misc: Add caching to daily and weekly test workflows 2024-09-23 12:01:57 -07:00
Bobby R. Bruce
1a637e6d94 tests: test_requires.py moved to very-long and drop risv
This test required a lot of compilation for what it does. It is now moed
to very-long/weekly and riscv has been dropped as arm and x86 are
sufficient.
2024-09-23 11:34:14 -07:00
Bobby R. Bruce
87daf94c0e tests: 'NULL_MI' -> 'NULL' in test_replacement_policies.py
NULL already compiled to include the MI protocol. This explicit
declaration causes compilation of another binary which is not required.
2024-09-23 11:34:14 -07:00
Bobby R. Bruce
91fb4acd29 tests: Remove 'multi_isa' tests (redundant)
These tests are almost identical to 'stdlib/test_requires.py' tests.
They use all the same functions and tests the functionality.
2024-09-23 11:34:14 -07:00
Giacomo Travaglini
c3d356b43d arch-arm: Move generateTrap from MiscRegOp to ArmStaticInst (#1560)
System(Misc) register accesses are not the only trappable instructions.
We move the exception generation logic (generateTrap) from the
MiscRegOp64 to the base ArmStaticInst
2024-09-23 19:37:29 +02:00
Bobby R. Bruce
e85592da14 scons: Fix scons 'readCommand' non-zero exits (#1587)
There appears to have been an assumption here that `Popen` would raise
an exception if the command run returned non-zero. This is not the case.
This commit fixes this by obtaining the return code and throwing an
exception if it is non-zero.

This bug caused some minor issues as Exception handling code to handle
the non-zero case elsewhere in Scons was never executed.
2024-09-23 10:09:23 -07:00
Bobby R. Bruce
41b02c5020 misc: Revert "Revert Dramsys Ubuntu to 22.04 to ..."
This reverts commit 52fbc8ebcf.

This commit used Ubuntu 22.04 instead of the typucal 24.04 as 24.04
has GCC v13 installed by default. GCC v13 (and new compilrs introduce a
'oerloaderdf-virtual' check that is triggered in systemc. Systemc
developers suggest this fix to proceed.
2024-09-23 05:20:30 -07:00
Bobby R. Bruce
0bd2cfaf53 systemc: Disable 'overloaded-virtual' warn for systemc bind funcs
For GCC >=v13 systemc was breaking due to the overloaded virtual
warning check.

Issue: #1121
2024-09-23 05:20:29 -07:00
Bobby R. Bruce
9b83fc8736 misc: Add caching to weekly tests 2024-09-23 05:02:38 -07:00
Bobby R. Bruce
8aa58714c4 misc: Update docker-build.yaml to target default 2024-09-23 02:40:37 -07:00
Bobby R. Bruce
688268d22d util-docker: Minor housekeeping to Dockerfiles (#1592)
1. Moved description label to docker-bake.hcl. Image descriptions must
be specified here. See:
https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry#adding-a-description-to-multi-arch-images
2. Moved specifying the 'Dockerfile' to 'common'.
3. Changed it so the gpu-fs and gcn-fpu images only built to
linux/amd64. arm64 doesn't work.
2024-09-23 02:36:09 -07:00
Bobby R. Bruce
ba02266260 misc: Fix 'target' field in docker-build.yaml 2024-09-21 08:05:09 -07:00
Bobby R. Bruce
7a5b8d9a9c misc: Fix 'username' field in docker-build.yaml 2024-09-21 08:01:22 -07:00
Bobby R. Bruce
b47dc0d5e6 misc: Fix 'needs' field in docker-build.yaml 2024-09-21 07:41:58 -07:00
Bobby R. Bruce
c01aaf83f7 misc: Add matrix to docker-build.yaml 2024-09-21 07:39:06 -07:00
Bobby R. Bruce
c88f0d0097 misc: docker-build.yaml test 2024-09-21 07:27:42 -07:00
Bobby R. Bruce
50aac87c71 misc: docker-build.yaml fix 2024-09-21 07:17:32 -07:00
Bobby R. Bruce
cae4852606 misc: Fix docker-build.yaml (#1588)
This is an attempt to get the docker build workflow working
2024-09-21 07:08:12 -07:00
Kaustav Goswami
51b5279671 ext,util-docker: updated SST to v.14.0.0 (#1575)
This change updates SST from v.13.0.0 to v.14.0.0. It also adds an
updated docker file to test the new version.
2024-09-21 06:18:12 -07:00
Bobby R. Bruce
473a37be04 util-docker: Minor docker improvements/fixes (#1586)
1. Added `sudo` to Ubuntu 24.04 all dependency Dockerfile

Without this an admin user entering a container mirroring host user
permissions can't run `sudo` within the container as it doesn't exist.
They also can't install it as `apt install` requires `sudo`.

As 24.04_all-deps serves as the base images for other images, this
change will be reflected in most other gem5 Docker images.

2. Fix multiplatform builds by removing `BUILDPLATFORM` platform fix.

This actually breaks multi-platform builds when using docker buildx via
the docker-bake.hcl file. Removing this fixes and permits the
multi-platform builds to be built.

3.Remove 'latex/riscv64' as Docker build target

It is unlikely anyone will be running these images on a RISC-V system
anytime soon. They are costly in terms of space and also require RISC-V
emulation to build which is very slow. This change has it so our
multi-platform builds just target ARM and X86.
2024-09-21 04:55:47 -07:00
Bobby R. Bruce
6186fc72a0 util-docker: Add 'sudo' to Ubuntu 24.04_all-deps
Without this an admin user entering a container mirroring host user
permissions can't run `sudo` within the container as it doesn't exist.
They also can't install it as `apt install` requires `sudo`.

As 24.04_all-deps serves as the base images for other images, this
change will be reflected in most other gem5 Docker images.
2024-09-21 04:52:33 -07:00
Bobby R. Bruce
827bca0cdb util-docker: Remove 'latex/riscv64' as Docker build target
It is unlikely anyone will be running these images on a RISC-V system
anytime soon. They are costly in terms of space and also require
RISC-V emulation to build which is very slow. This change has it so our
multi-platform builds just target ARM and X86.
2024-09-21 04:49:28 -07:00
Bobby R. Bruce
8fc2c4c9b4 util-docker: Remove 'BUILDPLATFORM' set
This actually breaks multi-platform builds when using docker buildx via
the docker-bake.hcl file. Removing this fixes and permits the
multi-platform builds to be built.
2024-09-21 04:47:47 -07:00
Jason Lowe-Power
fee603fd84 mem-cache: Do not require p.size and p.entry_size in IP template (#1557)
This PR is adjusting the constructor to relax template
requirements. In this way child classes are free to provide
their own way of calculating the number of entries and the
shifting required to extract the set

Why do we need this?
Up to this patch we have been configuring the indexing policy
by setting up the cache/table size (in bytes) and the entry size.
Those parameters make a lot of sense in caching structures
where:

a) We want to configure the caching structure using
the amount of storage (in bytes) provided (e.g. 4kB of Cache)
b) the content of a single entry is addressable therefore
we need the entry size to know how many bits in the indexing
process we need to shift to extract the set

In those cases the number of cache entries is derived from the formula

num_entries = size / entry_size

The adoption of the IndexingPolicy for different kinds
of caching structures (e.g. prefetcher tables) make this
way of configuring the IP a bit quirky.

For some tables directly setting the number of entries is a far more
intuitive way of configuring the IP, instead of allocating the desired
number of entries by working things out with the formula above
2024-09-19 07:48:46 -07:00
Giacomo Travaglini
e564561d41 misc: Remove Serialize-related code in Random (#1567)
The Random ser/des support has been non-existent since 2014.
Removing it will enable the Random class to be unit tested
without having a dependency on the src/sim code.
2024-09-19 14:13:10 +02:00
Arthur perais
85210cf51d misc: Remove unecessary include in random.hh 2024-09-18 13:43:37 +02:00
Giacomo Travaglini
77dff262a1 arch-arm: Fix DC IVAC for Secure EL2 (#1569)
According to the Arm architecture reference manual:

"When the value of HCR_EL2.VM is 1, data cache invalidate instructions
executed at EL1 perform a data cache clean and invalidate"

This behaviour should be exteded to secure mode now that Secure EL2 is
supported

Change-Id: I8b4733e6336a0fd5577f4ef35c0bae5408f91194

Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
2024-09-18 11:07:10 +01:00