Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[fix] Dynamic reconfiguration policies #329

Merged
merged 2 commits into from
Feb 7, 2024

Conversation

jjfumero
Copy link
Member

@jjfumero jjfumero commented Feb 7, 2024

Description

This PR fixes the dynamic reconfiguration to select the correct device depending on the input policies.

Problem description

The issue was that the timers were not correctly calculated, and it includes the whole performance evaluation in the case of the performance policy. This PR solves this issue and it refactors the sequential and parallel strategies.

Backend/s tested

This PR has been tested with the OpenCL backend

  • OpenCL
  • PTX
  • SPIRV

OS tested

Mark the OS where this PR is tested.

  • Linux
  • OSx
  • Windows

Did you check on FPGAs?

If it is applicable, check your changes on FPGAs.

  • Yes
  • No

How to test the new patch?

$ make
$ make tests

@jjfumero jjfumero added bug Something isn't working API runtime labels Feb 7, 2024
@jjfumero jjfumero self-assigned this Feb 7, 2024
if (policy == Policy.PERFORMANCE) {
for (int k = 0; k < PERFORMANCE_WARMUP; k++) {
for (int k = 0; k < 100; k++) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why hardcoded value?

if (policy == Policy.PERFORMANCE) {
for (int k = 0; k < PERFORMANCE_WARMUP; k++) {
for (int k = 0; k < 100; k++) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why hardcoded value?

Copy link
Member

@mikepapadim mikepapadim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: revert the hardcoded value of the warmup iterations

@@ -805,7 +805,9 @@ private void updateProfiler() {
private void dumpDeoptReason(TornadoBailoutRuntimeException e) {
if (!Tornado.DEBUG) {
System.err.println(STR."\{RED}[Bailout] Running the sequential implementation. Enable --debug to see the reason.\{RESET}");
} else {
}else

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Checkstyle: revert this

@jjfumero
Copy link
Member Author

jjfumero commented Feb 7, 2024

all changes done.

Copy link
Member

@mikepapadim mikepapadim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks @jjfumero

@jjfumero jjfumero merged commit a7ee06f into beehive-lab:develop Feb 7, 2024
2 checks passed
@jjfumero jjfumero deleted the fix/dynamic-reconf branch February 7, 2024 17:29
jjfumero added a commit that referenced this pull request Feb 29, 2024
Improvements
~~~~~~~~~~~~~~~~~~

- `#323 <https://github.com/beehive-lab/TornadoVM/pull/323>`_: Set Accelerator Memory Limit per Execution Plan at the API level
- `#328 <https://github.com/beehive-lab/TornadoVM/pull/328>`_: Javadoc API to run with concurrent devices and memory limits
- `#340 <https://github.com/beehive-lab/TornadoVM/pull/340>`_: New API calls to enable ``threadInfo`` and ``printKernel`` from the Execution Plan API.
- `#334 <https://github.com/beehive-lab/TornadoVM/pull/334>`_: Dynamically enable/disable profiler after first run

Compatibility
~~~~~~~~~~~~~~~~~~

- `#337 <https://github.com/beehive-lab/TornadoVM/pull/337>`_ : Initial support for Graal and JDK 21.0.2

Bug Fixes
~~~~~~~~~~~~~~~~~~

- `#322 <https://github.com/beehive-lab/TornadoVM/pull/322>`_: Fix duplicate thread-info debug message when the debug option is also enabled.
- `#325 <https://github.com/beehive-lab/TornadoVM/pull/325>`_: Set/Get accesses for the ``MatrixVectorFloat4`` type fixed
- `#326 <https://github.com/beehive-lab/TornadoVM/pull/326>`_: Fix installation script for running with Python >= 3.12
- `#327 <https://github.com/beehive-lab/TornadoVM/pull/327>`_: Fix Memory Limits for all supported Panama off-heap types.
- `#329 <https://github.com/beehive-lab/TornadoVM/pull/329>`_: Fix timers for the dynamic reconfiguration policies
- `#330 <https://github.com/beehive-lab/TornadoVM/pull/330>`_: Fix the profiler logs when silent mode is enabled
- `#332 <https://github.com/beehive-lab/TornadoVM/pull/332>`_: Fix Batch processing when having multiple task-graphs in a single execution plan.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
API bug Something isn't working runtime
Projects
Development

Successfully merging this pull request may close these issues.

3 participants