MulticoreWare

Engineering Optimal Performance
Mastering Software Analysis and Optimization

VaLVe: Revolutionizing SIMD Programming

Experience VaLVe, our revolutionary solution for seamless SIMD programming. VaLVe transforms the landscape by offering a versatile vector programming layer that seamlessly supports classical vector ISAs like ARM / NEON, and AVX as well as new entrants like ARM / SVE (applicable for Graviton 2 and Graviton 3) and RISC-V / RVV.

This cutting-edge solution replaces platform-specific intrinsics with a powerful C++ vector productivity library. Developers can now navigate the complexity of variable-length vectors with more ease and confidence, enabling them to write code once and compile it repeatedly for compatibility across diverse architectures.

Key Features

Enhancing Explicit Vector Programming:

VaLVe simplifies explicit vector programming, enabling developers to write efficient SIMD code for multiple architectures. With a dynamic toolset and user-friendly syntax, VaLVe revolutionizes the way applications leverage vectors.

Navigating Architecture Complexity:

In a landscape of evolving architectures, VaLVe serves as a bridge, allowing applications initially developed for fixed-length vector ISAs to smoothly transition to new architectures supporting Variable Length Vectors. VaLVe ensures compatibility and simplifies the migration process.

Portability Made Easy:

VaLVe enhances portability, eliminating the need to develop from scratch for new architectures. This ensures a quicker, simpler, and future-proof migration process.

Native Debug Capability

VaLVe-vectorized applications can leverage VaLVe’s inherent portability to directly test their functionality natively on development machines, reducing the amount of development and testing needed on costly or unwieldy deployment environments.

See VaLVe in Action

Frequently Asked Questions (FAQ):

VaLVe is a tool that enhances explicit vector programming across various architectures, enabling portability of vectorized applications. It allows you to write vectorized code without tying your development efforts to specific hardware architecture or fixed vector lengths. VaLVe serves as a user-friendly alternative to writing complex intrinsics, making it easier to achieve peak performance on different platforms.

VaLVe leverages an architecture-independent vector intrinsic layer in C, which supports both classical fixed-length vector ISAs and modern variable-length vector ISAs. On top of this is layered a C++ library providing intuitive vector programming syntax. Together, these enable streamlined porting, making it quicker and simpler to adopt and yielding future-proof software that is ready to run on both your current and future CPU platforms.

VaLVe serves as the bridge that empowers developers to navigate the ever-changing landscape of CPU architectures, optimizing both programmer productivity and application efficiency with finesse.

Manual vectorization is crucial for achieving peak performance in applications that heavily rely on mathematical and computational operations. It allows developers to harness the full potential of modern processors by utilizing vector instructions for parallel data processing.
Unlike assembly or intrinsics, VaLVe provides a higher level of abstraction for vectorization. It abstracts away the architecture-specific details, making your code more portable across different platforms. This means you don’t have to write separate code for each hardware architecture, saving you time and effort.

VaLVe addresses several key issues:

  • Manual vectorization is time-consuming and often ties development to specific architectures. VaLVe offers portability, allowing you to write vectorized code that works across various hardware platforms.
  • Pre-existing manual vectorization methods are often dependent on fixed vector lengths, which can cause compatibility issues with modern Instruction Set Architectures (ISAs). VaLVe overcomes this limitation by supporting variable vector lengths.
VaLVe can significantly boost developer productivity and speed up the development cycle by simplifying the process of writing vectorized code. It allows developers to write code that is more adaptable, portable, and optimized for different hardware architectures.

VaLVe offers several key advantages:

  • Enhanced productivity and code portability across various ISAs.
  • Simplified vector programming without relying on challenging intrinsics.
  • Significant time savings by automating manual vectorization efforts.
  • Increased developer productivity through efficient vectorization.

VaLVe caters to a wide range of users, including:

  • Semiconductor Companies: VaLVe can be used as part of an Engineering Service project for a customer who needs to vectorize mathematical and machine learning libraries for multiple architectural variants to enhance developer productivity and speed up development cycle.
  • Independent Software Vendors (ISVs): ISVs having products that have to be optimized for multiple architectures can license VaLVe to vectorize their code without incurring resource costs by avoiding repetition of development efforts.
Yes, VaLVe is designed to support multiple hardware architectures and ISAs, making it a versatile solution for developers working with diverse platforms.
Yes, VaLVe can be used for both small-scale projects and large-scale software development initiatives. Its flexibility and automation make it a valuable tool for developers in various contexts.
VaLVe is designed to be easily integrated into existing software projects. It seamlessly generalizes code for vectorization as well as for multiple architectures, minimizing the need for extensive code rewrites.
VaLVe is built with flexibility in mind and can adapt to new ISAs and architectures as they emerge. It already supports new entrants like ARM / SVE (applicable for Graviton 2 and Graviton 3) and RISC-V / RVV. It’s a forward-looking solution to vectorization challenges.
Getting started with VaLVe is easy. You can contact our team for more information, explore our licensing options, and access the necessary support and resources to implement VaLVe in your projects.

Write to us : info@multicorewareinc.com or contact us by filling out the form below and our team will get in touch with you!

GET IN TOUCH

Our team is happy to answer your questions. Please fill out the form and we will be in touch with you as soon as possible.

    (Max 300 characters)