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

Enable XeTLA LSTM for GPU #28817

Open
wants to merge 13 commits into
base: master
Choose a base branch
from

Conversation

jkasprza
Copy link
Contributor

@jkasprza jkasprza commented Feb 4, 2025

Details:

  • Add Intel XeTLA (Xe Templates for Linear Algebra) library to OpenVINO GPU plugin. Required SDL process is passed.
  • Preprocess XeTLA headers with available cpp compiler during cmake build process and add results to CM batch headers.
  • Enable XeTLA based LSTM implementation for Intel Xe2 architectures.

@jkasprza jkasprza added the category: GPU OpenVINO GPU plugin label Feb 4, 2025
@jkasprza jkasprza requested review from a team as code owners February 4, 2025 14:46
@jkasprza jkasprza requested review from kblaszczak-intel and removed request for a team February 4, 2025 14:46
@github-actions github-actions bot added category: IE Tests OpenVINO Test: plugins and common category: build OpenVINO cmake script / infra category: docs OpenVINO documentation labels Feb 4, 2025
@github-actions github-actions bot removed the category: IE Tests OpenVINO Test: plugins and common label Feb 5, 2025
@ValentinaKats
Copy link

In copyright lines, please update the second year in the range to "2025" as these changes will be released in 2025 year.

As an example:

// Copyright (C) 2018-2024 Intel Corporation

to be changed to

// Copyright (C) 2018-2025 Intel Corporation

@jkasprza
Copy link
Contributor Author

jkasprza commented Feb 6, 2025

I updated copyright notice in all new files. @ValentinaKats please take a look.

k.EnableTensorOffset();
k.EnableTensorPitches();
k.EnableBatching();
k.EnableDynamicShapesSupport();
Copy link
Contributor

Choose a reason for hiding this comment

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

Looks like dynamic shapes are not supported, so this line should be removed

}

auto num_gates = 4;
auto batch_size = in_layouts[0].get_dim(0);
Copy link
Contributor

Choose a reason for hiding this comment

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

Please check that none of the input/output tensors have dynamic shapes. Otherwise this call will trigger the exception


auto num_gates = 4;
auto batch_size = in_layouts[0].get_dim(0);
auto input_size = in_layouts[0].get_dim(2);
Copy link
Contributor

Choose a reason for hiding this comment

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

This get_dim() method is deprecated, please use get_shape() and then work with ov::Shape instead

#pragma once

#include "kernel_base_cm.h"
#include "../lstm_kernel_base.h"
Copy link
Contributor

Choose a reason for hiding this comment

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

Please don't use .. in the header path

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: build OpenVINO cmake script / infra category: docs OpenVINO documentation category: GPU OpenVINO GPU plugin do_not_merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants