Skip to content

Automated generation of IDE profile files from tornado command #583

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

Merged
merged 15 commits into from
Oct 29, 2024

Conversation

stratika
Copy link
Collaborator

@stratika stratika commented Oct 24, 2024

Problem description

As mentioned in #582, the IDE xml configuration files are being tracked by the vcs system, as they are part of the repository.

Description

To address this issue, this PR provides template xml files which are stored in the repository.

At first, a developer can build TornadoVM in console (manually, or via tornadovm-installer).

Once it is built, developers can use the tornado command to generate custom IDE files that can be used by them to build and run TornadoVM from the IntelliJ IDE. This is the command:

tornado --ideinit

The command will use the runtime information from the environment variables, in order to configure the template xml files with information such as: TORNADO_SDK, JAVA_HOME, BACKENDS, etc. The generated files are stored in the .build directory.

And then if developers open the IDE, they will be able to build and run the project from the IDE.

This PR also updates the relevant documentation page.

I tested the branch in Ubuntu 23.10, macOS 15.0.1 and Windows 11

Note: If developers run the command multiple times, the tornado script deletes the files and generates new files.

Backend/s tested

Mark the backends affected by this PR.

  • OpenCL
  • PTX
  • SPIRV

No backends are affected. This PR does not touch the compiler. However, I tried all configurations to see that the command follows the correct configurations based on the TornadoVM built instances.

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?

Follow the instructions.


@stratika stratika self-assigned this Oct 24, 2024
@stratika stratika added enhancement New feature or request documentation Documentation python Pull requests that update Python code labels Oct 24, 2024
@stratika stratika requested review from jjfumero and mairooni October 24, 2024 13:50

def generate_backend_profiles_as_xml_entries(BACKEND_PROFILES):
xml_entries = []
for backend in BACKEND_PROFILES:
Copy link
Member

@jjfumero jjfumero Oct 25, 2024

Choose a reason for hiding this comment

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

It would be good to print in STDOUT the files names/path being generated.

Copy link
Member

@jjfumero jjfumero left a comment

Choose a reason for hiding this comment

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

I get the following error:
Screenshot from 2024-10-25 16-43-56

and this one

Screenshot from 2024-10-25 16-43-35

It seems a problem with the Python configuration.

@jjfumero
Copy link
Member

Ok, my fault, I did not have the Python plugin installed for the instance I was running. The build works

@stratika
Copy link
Collaborator Author

I addressed the comments, and tested the changes in Linux, macOS, Windows.

Copy link
Collaborator

@mairooni mairooni left a comment

Choose a reason for hiding this comment

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

LGTM

@stratika stratika merged commit 3c0de66 into beehive-lab:develop Oct 29, 2024
2 checks passed
@stratika stratika deleted the feat/idea-xml-generation branch October 29, 2024 10:38
jjfumero added a commit to jjfumero/TornadoVM that referenced this pull request Dec 20, 2024
Improvements
=============

- beehive-lab#573: Enhanced output of unit-tests with a summary  of pass-rates and fail-rates.
- beehive-lab#576: Extended support for 3D matrices.
- beehive-lab#580: Extended debug information for execution plans.
- beehive-lab#584: Added helper menu for the ``tornado`` launcher script when no arguments are passed.
- beehive-lab#589: Enable partial loop unrolling for all backends.
- beehive-lab#594: Added RISC-V 64 CPU port support to run OpenCL with vector instructions RVV 1.0 (using the Codeplay OCK Toolkit).
- beehive-lab#598: OpenCL low-level buffers tagged as read, write and read/write based on the data dependency analysis.
- beehive-lab#601: Feature to select an immutable task graph to execute from a multi-task graph execution plan.

Compatibility
=============

- beehive-lab#570:  Extended timeout for all suite of unit-tests.
- beehive-lab#579: Removed legacy JDK 8 and JDK11 build options from the TornadoVM installer.
- beehive-lab#582: Restored tornado runner scripts for IntellIJ.
- beehive-lab#583: Automatic generation of IDE IntelliJ configuration runner files from the TornadoVM command.
- beehive-lab#597: Updated white-list of unit-test and checkstyle improved.

Bug Fixes
=============

- beehive-lab#571: Fix issues with bracket closing for if/loops conditions.
- beehive-lab#572: Fix for printing default execution plans (execution plans with default parameters).
- beehive-lab#575: Fix the Level Zero version used for building the SPIR-V backend.
- beehive-lab#577: Fix checkstyle.
- beehive-lab#587: Fix thread scheduler for new NVIDIA Drivers.
- beehive-lab#592: Fix ``Float.POSITIVE_INFINITY`` and ``Float.NEGATIVE_INFINITIVE`` constants for the OpenCL, CUDA and SPIR-V backends.
- beehive-lab#596: Fix extra closing bracket during the code-generation for the FPGAs.
- Remove the intermediate CUDA pinned memory regions in the JNI code: [link](beehive-lab@9c3f8ce)
- Fix bitwise negation operations for the PTX backend:  [link](beehive-lab@0db1cd3)
- `GetBackendImpl::getAllDevices` thread-safe: [link](beehive-lab@0d44252)
- Check size elements for memory segments: [link](beehive-lab@4360385)
@jjfumero jjfumero mentioned this pull request Dec 20, 2024
8 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Documentation enhancement New feature or request python Pull requests that update Python code
Projects
Development

Successfully merging this pull request may close these issues.

3 participants