Abstract
The Modified Discrete Sine Transform (MDST) is widely used in signal-processing applications where computational efficiency, latency, and energy consumption are critical design constraints. This paper introduces a low-complexity, parallel MDST algorithm that decomposes the transform into four independent computational sections, reducing arithmetic redundancy and enabling concurrent execution on GPU and multicore CPU architectures. The proposed implementation was evaluated on NVIDIA Jetson AGX Xavier, Jetson AGX Orin, and GeForce RTX 4090 GPUs, as well as on an Intel Core i9-14900K CPU. For isolated N = 34 transforms, the proposed formulation achieved GPU speedups of 7.55–76.85 relative to the classical MDST, depending on the platform and operating frequency, while CPU speedups ranged from 6.71 to 12.13 under controlled conditions. A complementary standard Linux experiment preserved a 6.58× CPU speedup, showing that the performance advantage does not depend on specialized core isolation. Compute-only measurements on the Jetson AGX Xavier further showed an approximately 99% reduction in GPU energy per transform. Memory profiling confirmed substantial reductions in global and local memory traffic. Because a single four-section transform provides insufficient parallelism to fully utilize a modern GPU, an additional batched implementation was developed to exploit inter-transform parallelism. On the Jetson AGX Orin, throughput reached approximately 82.17 × 106 transforms/s, with 98.34% SM activity and 80.84% SM throughput, demonstrating that the proposed decomposition is particularly effective for batched, multichannel, and high-throughput workloads. These results show that the proposed MDST reformulation combines reduced arithmetic and memory complexity with efficient deployment across heterogeneous parallel architectures.
1. Introduction
The information age poses multiple technical challenges for data processing and communication. High data volumes, especially for multimedia content, can consume significant energy, reducing device runtime, while resource-constrained devices tend to be low-power and usually slow.
Addressing these technical challenges often requires a combination of efficient algorithms and parallel processing.
Many modern applications require real-time processing. Real-time multimedia applications have evolved to the point that, to meet the demanding requirements in this area, the use of VLSI technologies or parallel processing is increasingly important. Thus, the effective use of parallel processing in software implementations and the development of innovative algorithms with reduced arithmetic complexity have become crucial.
Since the MDCT and MDST are computationally intensive, it is important to develop new algorithms with reduced arithmetic complexity that can be computed in parallel.
The literature describes efficient hardware implementations for the MDCT and MDST [1,2,3,4,5]. Other existing algorithms for the MDCT and MDST are better suited for a software implementation due to their irregular and complex computations [6,7,8,9], though a few can be implemented in parallel. Most existing algorithms used in hardware or software implementations cannot be used in parallel implementations, primarily due to their recursive structure, except [4] and [5], which have been used in VLSI implementations.
The main contributions of this work are:
- a new MDST reformulation that decomposes the transform into four independent computational sections while reducing arithmetic complexity;
- CUDA and multicore CPU implementations of the proposed algorithm;
- an experimental evaluation across multiple GPU architectures and a multicore CPU platform, including execution-time, memory-access, energy-consumption, and GPU-utilization analyses; and
- a comparison with a recent state-of-the-art MDST implementation.
The remainder of the paper is organized as follows: Section 2 presents the proposed MDST reformulation. Section 3 and Section 4 describe the experimental platforms and methodology. Section 5 reports the GPU and CPU results. Section 6 discusses the results and compares them with related work. Section 7 concludes the paper.
1.1. Background and Practical Relevance of MDCT/MDST
Transform-domain processing is widely used in signal processing because it provides compact spectral representations that facilitate spectral analysis, quantization, and compression. The Modified Discrete Cosine Transform (MDCT) and Modified Discrete Sine Transform (MDST) are lapped block transforms that can be interpreted as cosine- and sine-modulated, critically sampled analysis/synthesis filter-bank structures based on time-domain aliasing cancellation (TDAC) [10,11]. In their standard formulation, adjacent input frames typically overlap by 50%. The analysis stage deliberately introduces time-domain aliasing; in an unquantized analysis/synthesis chain, this aliasing is canceled during synthesis by the overlap-add process when the analysis and synthesis windows satisfy the required perfect-reconstruction conditions [10].
This overlapping structure reduces discontinuities between successive processing blocks and mitigates blocking artifacts, making it particularly valuable for audio and speech coding. For correlated audio signals, the MDCT provides good energy compaction and a high-resolution spectral representation suitable for psychoacoustic bit allocation and coefficient quantization. Accordingly, the MDCT is used in widely deployed perceptual audio coders, including MP3, AAC, Dolby Digital (AC-3), and Enhanced AC-3 [12,13,14]. In MP3, the MDCT operates on the output of a polyphase filter bank, with long and short transform blocks selected based on the signal’s temporal characteristics, particularly around transient events [6,12]. AC-3 employs a windowed MDCT/TDAC transform to obtain spectral coefficients, which are then quantized using a psychoacoustically motivated bit-allocation procedure [13].
The MDST is closely related to the MDCT and provides the corresponding sine-modulated representation. The MDCT and MDST can be treated within a unified TDAC analysis/synthesis framework and combined in common computational structures [9,15,16]. Cosine/sine transform pairs are relevant not only to audio coding but also to subband analysis/synthesis and transform-domain signal processing. In particular, the inherent 50% overlap of MDCT/MDST frames can be advantageous in transform-domain filtering by reducing artifacts associated with independent block processing [17]. Consequently, efficient MDCT/MDST computation is of interest wherever repeated real-time or high-throughput transform processing is required.
Despite these advantages, efficient MDCT/MDST implementation remains challenging. Direct evaluation has quadratic arithmetic complexity and requires many weighted multiply–accumulate operations. Moreover, overlapping input frames can increase memory traffic unless data reuse is explicitly exploited. Practical implementations must also manage intermediate storage and the data dependencies introduced by fast or recursive formulations. These constraints are especially critical in real-time audio, embedded systems, and other resource-constrained applications, where latency, memory bandwidth, and energy consumption are constrained. Fast algorithms therefore exploit transform symmetries, matrix factorizations, recursive formulations, and common subexpressions to reduce the number of multiplications and additions [1,2,3,4,5,6,7,8,9,15,16].
Efficiently mapping such algorithms onto modern parallel processors introduces an additional challenge. Low arithmetic complexity alone does not guarantee high performance on GPUs or multicore CPUs: strong data dependencies, irregular memory-access patterns, and insufficient independent work can limit achievable parallelism. Conversely, decomposing the computation into independent sections exposes concurrency and enables more effective use of programmable parallel architectures. This trade-off motivates the four-way MDST decomposition examined in this work.
1.2. Literature Review
The existing approaches for efficient MDCT/MDST computation can be broadly grouped into three categories: (a) recursive architectures, (b) fast algorithms based on transform decomposition and factorization, and (c) dedicated VLSI/systolic-array implementations.
A first important class comprises recursive MDCT/MDST algorithms, developed primarily to reduce hardware complexity and provide regular structures suitable for VLSI implementation. Chen et al. [1] reformulated the MDCT and IMDCT using data rearrangement and Chebyshev polynomial representations, yielding regular, recursive, infinite-impulse-response structures. Their architecture was experimentally validated via an ASIC implementation, delivering improved computational throughput while maintaining a relatively simple hardware organization. Lei et al. [2] subsequently proposed a unified recursive architecture for MDCT and IMDCT based on DCT-II and DST-II kernels. Their formulation substantially reduced pre-processing operations and recursive-kernel complexity, requiring only N/8 + 1 computational cycles per output sequence, and supporting multiple transform lengths within a common hardware architecture. Lai et al. [3] extended this approach to a common architecture capable of computing MDCT, MDST, IMDCT, and IMDST. The approach employs a recursively generated DCT-IV kernel with selectable parameters and enables simultaneous computation of MDCT and MDST coefficients. For a 512-point transform, the authors reported reductions of 50.21% in multiplications and 24.97% in additions relative to an earlier recursive solution, and FPGA experiments demonstrated the feasibility of the architecture for real-time audio coding. Although recursive structures provide attractive area efficiency and regularity, their inherent data dependencies can limit the degree of fine-grained parallelism available to contemporary massively parallel processors.
A second group comprises fast computational algorithms based on transform identities, exploitation of symmetry, and matrix or signal-flow decomposition. Britanak and Rao [6] developed an efficient forward/inverse MDCT implementation for MPEG-1/2 Layer III by exploiting the even-anti-symmetry of the MDCT and reducing computation to short DCT-II/DST-II and inverse DCT-III/DST-III modules. This approach applies to transform lengths divisible by four and was specifically optimized for the 12- and 36-point transforms used in MP3 coding. Lee [7] has further reduced arithmetic complexity by first converting the forward and backward MDCT to a DCT-IV and then evaluating it via a scaled DCT-II (SDCT-II). The same SDCT-II module can be used in both directions, simplifying implementation and reducing the number of arithmetic operations. Nikolajevic and Fettweis [8] pursued a related symmetry-based decomposition tailored to MP3 block sizes. Their algorithm reduces the number of additions, removes one computational stage, and decreases the size of the largest shuffle block, characteristics particularly advantageous for DSP implementations with parallel datapaths.
Britanak and Rao [16] also investigated a unified MDCT/MDST formulation for the evenly stacked analysis/synthesis system, exploiting relationships and symmetry properties between the cosine and sine transforms to derive a common fast computational procedure. This concept was further developed by Britanak and Arriëns [15], who derived an identical computational structure for forward and backward MDCT/MDST processing based on a DCT-IV-centered formulation. The resulting regular signal-flow graph yields sparse matrix factorizations and allows the same structure to be reused in both analysis and synthesis filter banks. A related but conceptually distinct solution was introduced by Britanak [9], in which the computation is constructed exclusively from Givens–Jacobi rotations. This eliminates the need for reduced-size DFT, DCT, or DST modules and produces simple, regular computational structures that are particularly attractive for hardware realization and integer-transform implementations. These factorization-based methods achieve substantial reductions in arithmetic complexity; however, their computational graphs were primarily developed in the context of sequential DSP processing or dedicated hardware structures rather than explicitly restructuring the MDST into independent tasks intended for execution on general-purpose GPU and multicore CPU architectures.
The third category is represented by dedicated systolic-array implementations of the MDST. Chiper and Cracan [4] reformulated the MDST into two regular pseudo-cycle convolutions of identical form. Both structures can be executed on the same linear systolic array using interleaving, reducing hardware complexity while preserving the high throughput, regular local interconnections, and low I/O overhead characteristic of systolic architectures. This approach was subsequently extended in [5] through two systolic algorithms based on pseudo-circular correlations and pseudo-cycle convolutions. Because the resulting structures have identical forms and lengths, they can share a single linear systolic array; an additional formulation replaces general multipliers with constant multipliers to further reduce implementation complexity. These solutions demonstrate that restructuring the MDST into regular computational structures is highly beneficial for parallel hardware. Nevertheless, they are specifically tailored to FPGA/ASIC-oriented systolic architectures rather than programmable GPU or multicore CPU execution.
Overall, the literature shows a clear evolution from recursive, low-area architectures toward increasingly regular transform factorizations and specialized parallel hardware. Recursive approaches [1,2,3] primarily optimize hardware cost and reuse; fast-transform approaches [6,7,8,9,15,16] reduce arithmetic complexity through symmetry and mathematical decomposition; and systolic solutions [4,5] explicitly exploit concurrency in dedicated VLSI structures. A less explored direction is reformulating the MDST into independent computational sections that simultaneously reduce arithmetic and memory-access complexity and can be directly mapped onto programmable parallel architectures. This observation motivates the approach proposed in this work, in which the MDST is decomposed into four independent computational sections and evaluated on both CUDA-enabled GPUs and a modern multicore CPU.
2. A Parallel Algorithm for the Computation of 1D MDST
The 1-D MDST is defined as:
for k = 0, …, M − 1, where M = N/2 and .
In order to reformulate the basic form of the algorithm given by Equation (1), in the case where M is a prime number, we introduced some restructuring of the input sequences defined below:
and
for .
for .
Using these auxiliary input sequences and appropriate permutations of the indices, we can reformulate the MDST computation, as shown below.
To illustrate our method, we have chosen the prime number M = 17, which is not very large.
To express the following relations concisely, we noted:
Using the above auxiliary input and sub-expression sharing technique to reduce arithmetic complexity, we obtained the following equations that can be efficiently computed in parallel and have lower arithmetic complexity, enabling an efficient implementation on a GPU that is significantly faster than other existing algorithms, including the classical algorithm.
First, we computed the following auxiliary output sequences Ta(k) and Ya(k):
where c(k) = cos(16 ⋅ kα)
And
and also
Then, we computed the next auxiliary output sequences Tb(k) and Yb(k):
Equations (12)–(17), (18)–(24), (26)–(30) and (32)–(36) are computed in parallel on a separate processor. The number of multiplications has been significantly reduced. Thus, in the matrix operations in Equations (12), (18), (26) and (32), there are only 10 multiplications in each.
Then we computed another auxiliary output sequence T(k) as follows:
for .
Using the auxiliary output sequence T(k), we finally compute the output sequence recursively as follows:
for .
Figure 1 illustrates the execution strategy of the proposed four-way parallel MDST algorithm derived from the mathematical reformulation presented above. This organization highlights both the algorithmic decomposition and its direct mapping onto CPU and parallel GPU architectures.
Figure 1.
Execution strategy of the proposed four-way parallel MDST algorithm.
3. Overview of the Development Systems Used in MDST Analysis
The experimental setup includes two embedded computing platforms (Jetson AGX Xavier and Jetson AGX Orin) and a high-end desktop based on an RTX 4090 GPU (see Table 1). These systems were selected to highlight the trade-offs among energy efficiency, computational density, and deployment flexibility in real-world applications.
Table 1.
The main features of the development systems used in this research.
From an energy-efficiency perspective, the embedded platforms are designed for edge deployment, where power consumption and thermal constraints are critical. The Jetson AGX Xavier, built on the Volta architecture, delivers modest computational throughput while maintaining a relatively low power envelope, making it suitable for latency-sensitive, resource-constrained scenarios. Its successor, the Jetson AGX Orin, significantly improves computing density by leveraging a newer Ampere-based design and a more advanced fabrication process. This results in a substantial increase in AI inference capability (in TOPS—Tera Operations Per Second) without a proportional rise in power consumption, thus offering a better performance-per-watt ratio compared to the Xavier platform.
In contrast, the desktop system with an RTX 4090 GPU prioritizes maximum computational performance over efficiency under strict power budgets. The Ada Lovelace architecture enables extremely high parallelism and supports a wide range of numerical precisions, including lower-bit formats optimized for AI workloads. However, these capabilities come at the cost of significantly higher power consumption and reduced suitability for embedded or mobile deployments. Such systems are therefore better suited for offline training, large-scale simulation, or high-throughput data processing tasks where energy constraints are less restrictive.
Another key distinction lies in system integration. Embedded platforms integrate CPU and GPU resources within a unified memory architecture, reducing data-transfer overhead and improving efficiency in real-time processing pipelines. By contrast, the desktop configuration relies on discrete components, which, while more powerful, introduce additional latency and energy overhead due to data movement across separate memory hierarchies.
Overall, the comparison shows that while desktop-class GPUs deliver superior raw performance, embedded systems offer a more balanced solution for mobility applications, where energy efficiency, compactness, and real-time capabilities are essential design constraints.
Overall, the architectural progress of GPUs over time demonstrates a clear shift toward enhanced precision and flexibility, allowing GPUs to better accommodate heterogeneous workload requirements. This evolution supports optimized trade-offs between computational accuracy, performance, and energy efficiency, which are critical factors in both data center and edge deployment scenarios.
4. Materials and Methods
The study detailed in this paper introduces an innovative implementation of the Modified Discrete Sine Transform (MDST), organized into four independent computational sections that operate concurrently. For benchmarking, a reference implementation based on the traditional formulation of the transform was developed in C and executed under identical conditions on all target platforms (Table 1). Furthermore, a parallel configuration was considered, in which four execution threads were mapped to distinct CUDA cores (in the first main analysis) and to CPU cores (in the second main analysis). This approach was adopted to isolate the performance enhancements attributable to the proposed algorithmic restructuring from those resulting solely from hardware scaling factors such as clock frequency or architectural improvements.
4.1. GPU Execution Time Methodology
For GPU analysis, the experimental workflow consists of three consecutive stages. First, input data is transferred from the host (CPU) memory to the device (GPU) memory. Second, the transform is computed using either the reference implementation or the proposed MDST algorithm, with four parallel sections. Finally, the resulting data is copied back from the GPU to the CPU. The reported execution times include the cumulative duration of all three stages, thereby reflecting the end-to-end processing cost. This measurement should therefore be interpreted as an end-to-end single-transform GPU offload scenario, in which host-to-device transfer, kernel execution, and device-to-host transfer are all included. For such a small transform, these fixed transfer and launch overheads may account for a significant fraction of the total latency; the high-throughput batched regime is analyzed separately in Section 5.3. The computational component encompasses both arithmetic operations executed on CUDA cores and the memory access operations required by the algorithm.
To complement the GPU-based evaluation, an additional set of experiments was conducted on the CPU. In this case, the same algorithmic structure was implemented with multi-threaded execution, enabling a direct comparison between GPU acceleration and CPU parallelization in terms of execution time and scalability.
The input samples were generated pseudo-randomly at the beginning of each measurement sequence using the standard C library rand() function. The pseudo-random number generator was initialized with srand(time(NULL)); therefore, the seed was determined by the system time at the beginning of each execution. For a transform length of N = 34, 34 input samples were generated according to:
resulting in input values distributed over the interval [0, 1]. Consequently, different measurement sequences generally used different input data. The exact numerical input sequence did not need to be identical across experiments because the objective of the measurements was to evaluate execution time rather than the numerical response to a specific input dataset. Moreover, because GPU execution relies on SIMD (Single Instruction, Multiple Data) principles, the implementation uses fused multiply–add operations at the hardware level. These operations execute with constant latency, independent of operand values, so the statistical distribution of the input data does not significantly affect execution time.
In all experiments, the proposed MDST implementation was evaluated with an input transform length of N = 34 samples, yielding M = N/2 = 17 output coefficients; see relation (1). The same transform size was used for all CPU and GPU measurements unless otherwise specified.
Each reported measurement is the average of 10,000 consecutive execution cycles. For statistical robustness, 100 independent measurement sets were collected for each tested configuration. From these datasets, descriptive statistics, including the mean, standard deviation, and the minimum and maximum execution times, were computed. All experiments were conducted with the GPU and CPU operating at their minimum frequencies to evaluate algorithmic efficiency under constrained conditions and to approximate worst-case performance scenarios while maintaining reduced power consumption. In addition to the minimum-frequency evaluation, all experiments were repeated with both the GPU and CPU operating at their maximum supported frequencies to assess peak performance and analyze the impact of frequency scaling on execution time.
The GPU implementations were deployed as CUDA kernels, with each parallel section of the MDST algorithm mapped to a distinct CUDA core. The proposed CUDA kernel was launched using a grid of four blocks, with one thread per block (<<<4,1>>>). Each thread executed one of the four independent computational sections of the proposed MDST decomposition. Unless otherwise specified, all data structures, including inputs, outputs, and intermediate variables, were allocated in global memory. Memory allocation and CUDA context initialization were performed before the timed region and were therefore excluded from the reported execution times. The timed interval included host-to-device transfer, kernel launch and execution, and device-to-host transfer.
GPU timing measurements were performed using the CUDA event mechanism, which provides sub-microsecond resolution [18]. Specifically, event-based synchronization primitives were used to accurately capture the elapsed time between kernel invocation and completion. This approach is widely recognized as a reliable method for evaluating GPU performance and is commonly used in many papers [19,20,21,22,23,24].
All applications were compiled with the NVIDIA CUDA compiler (nvcc), which is included in the JetPack software (version 6.2) development kit. To ensure optimal performance, architecture-specific compilation flags were used for each target platform, enabling the generated binaries to fully exploit the underlying hardware. The general compilation command follows this structure: nvcc source_file.cu -o executable_name -arch=sm_xx.
For the execution-time comparison, both implementations used double-precision arithmetic and were compiled with the same NVIDIA nvcc toolchain and exactly the same compilation options on each platform. The architecture identifier (sm_xx) corresponds to the compute capability of the target GPU: sm_72 for the Volta architecture, sm_87 for the Ampere architecture, and sm_89 for the Ada Lovelace architecture. No additional optimization flags, such as -O3, --use_fast_math, or implementation-specific compiler options, were applied to either implementation. Consequently, both algorithms were subject to the same compiler optimization and instruction-generation policy, including any FMA fusion performed automatically by the compiler. No FMA-related option was selectively enabled or disabled for either implementation.
4.2. GPU Energy-Consumption Measurement Methodology
Energy consumption was included as a complementary evaluation criterion because execution time alone does not fully characterize the efficiency of an algorithm intended for embedded and resource-constrained systems. A reduction in execution time does not necessarily imply a proportional reduction in energy consumption, since higher computational activity or operating frequency may increase instantaneous power. Therefore, an energy analysis was conducted to determine whether the execution-time improvements achieved by the proposed four-section decomposition are accompanied by a reduction in the electrical energy required to perform the transform.
This distinction is particularly relevant for embedded and edge-computing platforms, where the available power budget, thermal constraints, and battery capacity may be as important as execution latency. The purpose of the present energy analysis is therefore primarily algorithmic: it evaluates the energy consequences of replacing the classical MDST formulation with the proposed implementation under identical hardware and operating conditions. It is not intended as a cross-platform energy ranking of the evaluated GPU and CPU architectures. Such a comparison would require equivalent power-measurement boundaries and instrumentation on all platforms.
The compute-only GPU energy consumption of the two CUDA implementations was measured on the NVIDIA Jetson AGX Xavier platform using the onboard INA3221 power-monitoring circuitry. The objective of this analysis was to quantify exclusively the electrical energy drawn from the GPU power rail during active CUDA kernel execution for the classical single-section algorithm (given by relation (1)) and the novel four-section implementations of the MDST algorithm. Accordingly, the measurement boundary was restricted to GPU computation. Host-side pre-processing, host-to-device memory transfers, device-to-host transfers, and all other CPU-side operations were performed outside the monitored interval and were therefore excluded from the reported energy values.
This measurement strategy was intentionally adopted to isolate the energy cost of the computational phase executed on the GPU and to enable a direct comparison between the two CUDA implementations, independent of data transfer and host processing overheads. Consequently, all energy quantities reported in this analysis should be interpreted as compute-only GPU-rail energy metrics, rather than as end-to-end energy consumption of the complete processing pipeline.
During each experiment, the GPU supply voltage and current were periodically sampled from the INA3221 monitoring interface. For the i-th sample, the instantaneous GPU power was determined from the measured voltage and current as:
where Pi denotes the instantaneous GPU power, Vi the GPU supply voltage, and Ii the corresponding current. Because the voltage and current values provided by the monitoring interface are expressed in millivolts and milliamperes, respectively, the instantaneous power in watts was computed as:
Power samples were acquired by an independent monitoring thread at a nominal sampling interval of 5 ms throughout the CUDA computation interval. Since the actual acquisition instants are not assumed to be perfectly uniform, the time stamps associated with individual measurements were retained explicitly. The total compute-only GPU energy was then obtained by numerical integration of the measured power profile using the trapezoidal rule:
Here, M denotes the total number of power samples acquired, and ti is the timestamp associated with the i-th sample. The resulting quantity, EGPU, is expressed in joules and represents the electrical energy supplied exclusively to the GPU power rail over the interval during which the CUDA workload was executed.
Because the duration of an individual kernel invocation is considerably shorter than the sampling period of the power-monitoring circuitry, each CUDA kernel was executed repeatedly within a single monitored interval. Niter (equal to 2,000,000) denotes the number of kernel invocations performed during one measurement. The compute-only GPU energy normalized to a single kernel invocation was therefore calculated as:
This normalization provides a directly comparable, implementation-level energy metric and is independent of the number of repeated kernel invocations required to achieve a sufficiently long, stable measurement interval. In the Section 5, this quantity is reported in microjoules per kernel invocation (µJ/kernel).
The mean GPU power during active CUDA computation was calculated as:
where Tmeas denotes the complete duration of the monitored CUDA execution interval. This quantity represents the mean electrical power drawn by the GPU rail during the compute-only measurement window.
In addition to the total compute-only GPU energy, a baseline-corrected estimate was derived in order to distinguish the incremental energy associated with active CUDA processing from the baseline power required to maintain the GPU in its operating state. Prior to each workload measurement, the mean GPU idle power, Pidle, was determined when no CUDA kernel was executing. The baseline energy corresponding to the same measurement duration was estimated as:
The incremental, or dynamic, compute-only GPU energy was subsequently calculated as:
The corresponding baseline-corrected energy per kernel invocation was determined as:
Two complementary compute-only energy metrics were therefore retained. The first, Ecompute/kernel, represents the total energy drawn from the GPU power rail during CUDA computation, normalized to one kernel invocation. This quantity includes the baseline electrical power required to keep the GPU operational during the monitored interval. The second metric, Edynamic/kernel, represents the incremental GPU-rail energy above the measured idle level and provides a baseline-corrected estimate of the additional electrical energy associated with active CUDA computation. This quantity should be interpreted as an incremental device-level energy metric.
For quantitative comparison of the two implementations, the relative reduction in compute-only GPU energy achieved by the four-section implementation relative to the single-section implementation was calculated as:
Here, Ecompute/kernel,1 and Ecompute/kernel,4 denote the compute-only GPU energy per kernel invocation for the single- and four-section CUDA implementations, respectively.
An analogous metric was used for the energy with baseline correction:
The relative energy-efficiency gain was also expressed through the energy ratio:
Values of FE greater than unity indicate that the four-section implementation requires less compute-only GPU energy per kernel invocation than the single-section implementation, and larger values indicate proportionally greater energy savings.
During all energy measurements, the GPU operating frequency was explicitly locked at the investigated value and maintained constant throughout the complete monitored workload interval. This eliminated GPU dynamic frequency transitions as a source of variability between the implementations being compared.
For each operating condition, the Section 5 reports the mean idle GPU power, the mean GPU power during active CUDA execution, the compute-only GPU energy per kernel invocation, and the corresponding baseline-corrected dynamic energy per kernel invocation.
The execution-time results are analyzed separately, as presented in the Section 4.1, and are intentionally omitted from the energy-consumption tables.
4.3. The CPU Execution Time Methodology
Although the proposed MDST algorithm was primarily designed for execution on GPUs, whose massively parallel architecture is inherently well-suited for this type of computation, an additional evaluation was intentionally conducted on a multi-core CPU platform. This complementary analysis was not intended to replace the GPU-oriented implementation, but rather to provide a deeper understanding of the intrinsic computational behavior of the algorithm when deployed on a fundamentally different hardware architecture. By assessing its performance on a modern multi-core CPU, it becomes possible to better characterize the algorithm’s scalability, parallel efficiency, and architectural adaptability beyond the GPU environment for which it was originally conceived.
To enable precise and reproducible evaluation of the proposed MDST algorithm, which is designed to run in parallel on four CPU cores, a dedicated system-level configuration was implemented (Table 2). The objective was to isolate cores 28–31 of an Intel Core i9 processor and eliminate any potential interference from the operating system, background processes, or hardware-level mechanisms.
Table 2.
System-level optimizations for CPU core isolation to achieve a deterministic MDST evaluation.
First, to prevent dynamic frequency scaling effects, the CPU frequency governor for the selected cores was set to performance mode [25]. This configuration ensures that cores 28–31 run continuously at their maximum configured frequency, eliminating latency variations caused by frequency transitions.
Second, the Energy Performance Preference (EPP) was set to performance for the same cores [26], prioritizing computational performance over energy efficiency despite Intel’s energy-aware scheduling in high-performance modes.
To achieve complete isolation from the Linux scheduler, the GRUB boot configuration was updated to include the isolcpus = 28–31 parameter [27]. This prevents the scheduler from assigning user-space tasks to the designated cores. Additional parameters, namely nohz_full = 28–31 and rcu_nocbs = 28–31, were added to eliminate periodic scheduler ticks and offload Read-Copy-Update (RCU) callbacks to non-isolated cores (0–27) [27,28]. These modifications effectively remove kernel-level interruptions and background activities from the isolated cores.
Hardware interrupts (IRQs) were moved away from the isolated cores by modifying the smp_affinity configuration files for each interrupt in the/proc/irq/directory [29]. A dedicated script assigned all movable interrupts to cores 0–27. Although some critical interrupts cannot be reassigned due to kernel constraints, most were successfully relocated, significantly reducing asynchronous disturbances.
Kernel work queues were reconfigured at runtime to restrict CPU affinity to cores 0–27 [28], keeping background workers (e.g., kworker threads) off isolated cores. Though listed as processes, these workers remain idle, using no CPU or causing context switches. Low-level monitoring (e.g., mpstat), rather than process inspection alone, confirmed no measurable activity on cores 28–31 without user applications.
Finally, to eliminate latency introduced by power management, deep CPU idle states (C-states) were disabled using the GRUB parameters intel_idle.max_cstate = 0 and processor.max_cstate = 0 [27]. This forces the processor to keep all cores in an active C0 state, avoiding wake-up delays and ensuring deterministic execution.
After applying all configurations and rebooting the system, cores 28–31 operate as dedicated computational units, free from scheduler interference, kernel activity, interrupt handling, and power-management-induced variability. This controlled execution environment ensures that the performance evaluation of the MDST algorithm reflects its intrinsic computational characteristics rather than artifacts introduced by the underlying system.
5. Results
To ensure a reliable and consistent evaluation of the proposed MDST algorithm, a series of experiments was conducted on both CPU and GPU architectures under controlled execution conditions [30,31]. The testing environment was carefully configured to prevent interference from other processes, allowing the computational resources to be dedicated entirely to the implementations under analysis. Each version of the testing environment was optimized for the target platform, accounting for differences between CPU and GPU parallel processing.
The results are summarized in the following tables and presented using relevant statistical metrics, including mean execution time (Mean ± SD) and the minimum and maximum recorded values for each experimental setup corresponding to the evaluated hardware configurations. To ensure consistency and enable a fair comparison across platforms, all implementations used double-precision floating-point arithmetic.
5.1. GPU Results
A rigorous evaluation of the proposed MDST algorithm (code available at the link in the Supplementary Materials) was conducted across multiple GPU architectures under tightly controlled conditions, ensuring that no concurrent workload interfered with execution. For each platform, both the classical implementation and the parallel version (structured into four independent segments) were executed using double-precision arithmetic. The reported metrics include the mean execution time, standard deviation, and the observed minimum and maximum runtimes, providing a comprehensive characterization of performance stability and variability (Table 3 and Table 4).
Table 3.
Performance outcomes of executing the two MDST algorithms (the conventional algorithm and the parallel implementation with four segments) across various GPU architectures, with each GPU operating at its minimum accepted frequency.
Table 4.
Performance outcomes for executing the two MDST computational algorithms (the conventional algorithm and the parallel implementation with four segments) across various GPU architectures, each operating at its maximum supported frequency.
Table 3 and Table 4 summarize the results under two distinct operating regimes: minimum and maximum GPU frequencies, respectively. In all cases, the classical implementation, executed on a single computational stream, served as the baseline reference, while the parallel version leveraged concurrent execution across multiple processing units. The performance gain was quantified as the ratio of the average execution time of the classical approach to that of the parallel implementation.
According to Table 3, where all GPUs operate at their lowest supported frequencies, the parallel MDST algorithm delivers substantial acceleration across all tested platforms. The speedup ranges from 22.58 on the Jetson AGX Xavier system to 76.85 on the GeForce RTX 4090. These results indicate that the benefits of parallelization are particularly pronounced under constrained frequency conditions, where efficient workload distribution and reduced computational redundancy are critical. Moreover, the relatively low standard deviations in the parallel implementation suggest a high degree of temporal stability, which is essential for reproducible performance evaluation.
In contrast, Table 4 reports results at maximum operating frequencies. Although absolute execution times decrease across all implementations, the relative speedup factors range from 7.55 to 11.79. This behavior can be attributed to the fact that, at higher frequencies, the classical implementation already benefits from increased raw computational throughput, thereby narrowing the relative advantage of parallel decomposition. Nevertheless, the parallel algorithm consistently outperforms the classical approach, maintaining a clear performance advantage across all architectures.
Those speed-up factors are achieved through a combination of factors in the proposed algorithm: minimizing the number of memory accesses, using precomputed and stored constants, minimizing the number of multiplications, and utilizing the subexpression sharing technique. To better understand the speed-up of the proposed algorithm, Table 5 presents the number of operations executed by the classical and proposed MDST algorithms.
Table 5.
The number of operations executed by the classical and proposed MDST algorithms.
The operation counts in Table 5 represent algorithm-level arithmetic complexity before compiler optimization; consequently, they are independent of compiler-generated instruction fusion, such as FMA. The measured execution-time improvements also reflect differences in memory-access behavior and parallel execution, as analyzed in Table 6.
Table 6.
Number of requests from global, local, and shared memory generated by the classical and proposed algorithms.
As illustrated in Table 3 and Table 4, the speed improvement exceeds 4 (the level of parallelism) due to fewer operations, especially multiplications, as shown in Table 5. These advantages can be extended to larger values of M, for example, M = 137 or M = 2017.
Modern GPU architectures include several types of memory, each designed to optimize performance and the efficiency of parallel execution. Global memory is the largest memory space on the GPU and can be accessed by all GPU threads and the host CPU. Although it provides high storage capacity, it also has the highest access latency. Shared memory is located directly on each Streaming Multiprocessor (SM) and offers significantly faster access speeds, but it can be accessed only by threads within the same thread block. Local memory is an extension of the register space and is used when the number of variables exceeds the available register capacity. Although it appears private to each thread, it is physically stored in global memory and therefore has similar latency characteristics.
Table 6 presents the number of accesses to local, global, and shared memory for each evaluated algorithm. These measurements were obtained using the NVIDIA Nsight Compute profiling tool.
It should be noted that the present CUDA implementation was designed primarily to evaluate the impact of the proposed algorithmic restructuring rather than to exhaustively optimize the GPU memory hierarchy. The principal input, output, and intermediate arrays are therefore predominantly maintained in global memory, while shared memory is selectively employed where data reuse within the parallel sections is advantageous. Nevertheless, the memory-access profile in Table 6 shows that the proposed formulation strongly reduces global-memory traffic, from 5220 requests in the classical implementation to only 152 requests, while introducing 181 shared-memory accesses and eliminating the observed local-memory traffic.
Register accesses are not explicitly quantified in Table 6 because scalar variables may be automatically allocated to registers by the CUDA compiler. Conversely, local memory is generally used when thread-private data cannot be maintained in registers. Therefore, the absence of local-memory requests in the proposed implementation indicates that no measurable local-memory traffic was generated during the profiled execution, but it should not be interpreted as a direct measurement of register usage.
More aggressive memory-hierarchy optimization, for example by retaining additional intermediate values in registers or shared memory and by exploiting constant memory for read-only coefficients, could potentially further improve execution time and energy efficiency. Thus, the reported results characterize the proposed algorithm under the investigated memory-mapping strategy and should not be considered the absolute hardware-specific optimum. At the same time, the substantial reduction in global-memory traffic demonstrates that the proposed mathematical restructuring itself improves not only arithmetic complexity but also the effective memory-access behavior.
A notable trend across both Table 3 and Table 4 is the proposed algorithm’s superior scalability on more advanced GPU architectures. In particular, the GeForce RTX 4090 consistently delivers the highest acceleration factors, especially in the low-frequency regime. The RTX 4090’s superior acceleration stems from several architectural features that directly favor the execution pattern of the proposed parallel MDST algorithm. The RTX 4090 benefits from a substantially more advanced warp scheduling mechanism. Modern NVIDIA schedulers can issue instructions from multiple warps simultaneously while aggressively hiding arithmetic and memory-access latencies. The proposed MDST algorithm contains numerous short arithmetic sequences with strong data locality. Such workloads are particularly well-suited to Ada Lovelace warp schedulers, which can rapidly alternate among ready warps while maintaining high execution efficiency, even for fine-grained computational kernels. Consequently, pipeline stalls are minimized, and the arithmetic units remain active for a larger fraction of the execution time.
Another important factor is the RTX 4090’s significantly improved memory hierarchy. The architecture incorporates: (a) larger L2 cache capacity, (b) higher cache bandwidth, (c) lower effective memory-access latency, and (d) substantially higher global memory throughput. The proposed MDST implementation repeatedly accesses compact intermediate vectors and shared computational data structures. In general, the proposed MDST algorithm performs significantly fewer memory accesses, as illustrated in Table 6. This reduction is one of the primary factors contributing to the increased execution speed compared to the classical algorithm. Moreover, on the RTX 4090, a larger proportion of these accesses can be satisfied directly through the cache, thereby reducing expensive global memory transactions. Furthermore, the Ada Lovelace architecture provides extremely high memory bandwidth through its GDDR6X subsystem (Table 1), approaching 1 TB/s. Although the proposed MDST algorithm is primarily arithmetic-oriented, memory movement still contributes to the overall execution cost, especially during host-to-device and device-to-host transfers and during intermediate vector manipulations. The high-bandwidth memory subsystem reduces these transfer bottlenecks and contributes to the lower overall runtime observed experimentally.
Consequently, the proposed approach not only benefits from parallel execution but also aligns with the architectural evolution of contemporary GPUs.
Overall, the results demonstrate that the proposed MDST implementation delivers significant performance gains over the classical method, with gains that depend on both hardware characteristics and operating frequency. The combination of parallel decomposition, reduced computational complexity, and efficient resource utilization underpins these gains, confirming the algorithm’s suitability for high-performance computing environments.
To assess the sensitivity of execution-time measurements to the numerical values of the input samples and to improve experimental reproducibility, an additional analysis was conducted using deterministic input sequences. Three pseudo-random input sequences were generated with fixed seeds (12,345, 23,451, and 34,512), along with five deterministic patterns: an all-zero sequence, a constant sequence (x[n] = 5.0), a ramp (x[n] = n/33), an alternating sequence (x[n] = 0, 1, 0, 1, …), and an impulse sequence defined by (x [0] = 1 and x[n > 0] = 0). The same input sequence was supplied to both the classical and proposed MDST implementations for each test. The timing methodology and execution conditions were kept identical to those used in the main benchmark. The sequence generated with the fixed seed 12,345 was selected as the reference, and the relative timing variation was calculated as:
Table 7 summarizes the resulting mean execution times and their relative deviations from the reference input.
Table 7.
Sensitivity of MDST execution time to different input data patterns and fixed pseudo-random seeds.
The results show only a small sensitivity of execution time to the numerical input pattern. For the classical implementation, the relative deviation from the reference sequence ranges from −0.100% to +0.758%, whereas for the proposed implementation it ranges from 0% to +1.347%. The largest deviation for the proposed algorithm was observed with the impulse input, while the largest deviation for the classical implementation occurred with the pseudo-random sequence generated with seed 34,512. Moreover, changing the pseudo-random seed produced variations below 0.76% for the classical implementation and below 1.26% for the proposed implementation. These results indicate that the measured execution times are only weakly sensitive to the numerical values and structure of the input data. Thus, although cache state, memory-system activity, and other low-level execution effects may introduce small timing variations, the performance advantage reported for the proposed MDST implementation is not dependent on a particular pseudo-random input realization.
5.2. GPU Energy-Consumption Results
The compute-only energy characteristics of the two CUDA implementations are summarized in Table 8, while the relative energy savings achieved by the novel four-section implementation are reported in Table 9. The measurements were obtained from 2,000,000 repeated kernel invocations per configuration, ensuring sufficiently long acquisition intervals for the onboard power-monitoring circuitry. Consistent with the measurement boundary defined in the Section 4, the reported values characterize only the GPU computation phase.
Table 8.
Compute-only GPU power and energy characteristics of the two CUDA implementations on the Jetson AGX Xavier.
Table 9.
Relative compute-only GPU energy improvement of the four-section CUDA implementation with respect to the single-section implementation.
The results demonstrate a substantial reduction in compute-only GPU energy consumption for the four-section implementation at both investigated GPU frequencies. At 114 MHz, the GPU-rail energy per kernel invocation decreases from 2574.27 µJ for the single-section implementation to 21.63 µJ for the four-section implementation, corresponding to a 99.16% energy reduction and an energy-efficiency factor of approximately 119×. Notably, the average GPU power remains nearly unchanged between the two implementations (0.4823 W versus 0.4813 W), indicating that the primary improvement is in the energy required per kernel invocation rather than in the average power level.
A similar improvement is observed at 1.4 GHz, where compute-only GPU energy decreases from 1706.14 µJ to 17.34 µJ per kernel invocation. This corresponds to a 98.98% reduction and an energy-efficiency factor of approximately 98.4×. At this frequency, the four-section implementation also shows lower average GPU power, dropping from 3.8361 W to 3.6310 W. The baseline-corrected results confirm the same overall trend, with dynamic-energy reductions of 99.03% at 114 MHz and 98.86% at 1.4 GHz. Overall, the measurements consistently show that the four-section CUDA implementation consumes approximately two orders of magnitude less compute-only GPU energy than the single-section implementation, and that this advantage is preserved across the investigated GPU operating frequencies.
Therefore, the reported compute-only energy values inherently include the energy associated with device-memory accesses occurring during kernel execution; consequently, alternative mappings of intermediate data to registers, shared memory, or constant memory could modify the absolute energy values, although such memory-specific optimization was outside the scope of the present algorithm-oriented comparison.
It is important to emphasize that the power-monitoring procedure does not attempt to resolve the energy consumption of an individual kernel invocation in the time domain. The duration of a single CUDA kernel is considerably shorter than the approximately 5 ms monitoring interval. Instead, the kernel was executed 2,000,000 times consecutively to generate a long, approximately stationary computational workload. The total GPU-rail energy was integrated over this complete interval and subsequently divided by the number of kernel invocations. Consequently, Ecompute/kernel represents an ensemble-averaged energy per kernel invocation rather than a direct temporally resolved measurement of a single kernel.
Because the duration of an individual CUDA kernel invocation is considerably shorter than the nominal power-sampling interval, an additional validation experiment was performed to evaluate whether the selected monitoring granularity affects the estimated energy per kernel. The complete energy-measurement procedure was independently repeated using nominal sampling intervals of approximately 5, 10, 20, and 50 ms. For all validation experiments, the same CUDA implementations, workload definition, number of kernel invocations, energy-integration procedure, and controlled GPU operating conditions were maintained. The GPU operating frequency was explicitly locked during the measurements in order to suppress workload-dependent frequency scaling and frequency-transition effects.
For each experiment, the instantaneous GPU-rail power was calculated from the measured voltage and current samples, while the total GPU energy was obtained by timestamp-based trapezoidal integration. The resulting energy was subsequently normalized by the number of kernel invocations, as defined by Equation (48).
Table 10 summarizes the resulting energy-per-kernel values obtained for the different nominal monitoring intervals.
Table 10.
Sensitivity of the estimated GPU energy per kernel to the nominal power-sampling interval—the GPU operating frequency was locked at 1.4 GHz.
The validation results show that the estimated energy per kernel is highly stable over the selected monitoring interval. For the classical MDST implementation, the maximum absolute deviation relative to the 5 ms reference measurement is only 0.033%. For the proposed MDST implementation, the maximum deviation is 0.651%, observed for the 50 ms sampling interval. Consequently, even when the nominal sampling interval is increased by a factor of ten, the resulting energy estimate remains within 1% of the 5 ms reference value for both CUDA implementations.
These results indicate that the reported energy metric is not critically dependent on the approximately 5 ms sampling granularity. This robustness results from the measurement strategy in which a large number of identical kernel invocations are executed consecutively, and the GPU-rail energy is integrated over the complete workload interval before normalization. Thus, the power monitor is not required to temporally resolve every individual kernel invocation in order to obtain a stable estimate of the mean energy per invocation.
Nevertheless, the finite temporal response of the INA3221 remains an intrinsic limitation of the measurement approach. Sub-millisecond power fluctuations associated with individual CUDA kernel executions cannot be reconstructed from the acquired samples, and short-duration transients may be attenuated or aliased by the monitoring circuitry. Therefore, the validation demonstrates the robustness of the integrated average energy estimate, but it should not be interpreted as evidence that the instantaneous power waveform of an individual kernel is temporally resolved.
From a system-design perspective, these results provide information that cannot be obtained from execution-time measurements alone. First, they demonstrate that the substantial acceleration achieved by the proposed decomposition is not obtained at the expense of increased GPU energy consumption. On the contrary, the reduction in arithmetic complexity, execution time, and memory activity results in a substantial reduction in the compute-only energy required per transform. This is particularly relevant when the MDST is repeatedly executed in battery-powered, thermally constrained, or continuously operating embedded systems.
Second, the measurements illustrate the trade-off associated with the GPU operating point. For the proposed implementation, increasing the GPU frequency from 114 MHz to 1.4 GHz reduces the total compute-only GPU-rail energy per kernel from 21.625 to 17.338 µJ, while the baseline-corrected dynamic energy increases from 8.618 to 12.606 µJ/kernel. Thus, the most appropriate operating point depends on the system-level optimization objective. A latency-constrained application may benefit from operation at the higher frequency, which also reduces the total rail energy associated with the shorter execution interval, whereas a design primarily concerned with the incremental energy attributable to active computation may favor a different operating point. These results demonstrate why both execution time and energy should be considered when selecting the operating conditions of the algorithm.
The present energy measurements should not, however, be interpreted as identifying the most energy-efficient processor among the Jetson AGX Xavier, Jetson AGX Orin, GeForce RTX 4090, and Intel Core i9 platforms. Energy was measured only on the Jetson AGX Xavier and only for the GPU-computation phase. A rigorous platform-selection study would require equivalent compute-only or end-to-end energy measurements on all candidate architectures. The cross-platform experiments presented in this work therefore establish performance portability and execution-time scalability, whereas the Xavier measurements provide a controlled assessment of the energy consequences of the proposed algorithmic restructuring.
5.3. GPU Parallelism Scalability Through Batched MDST Processing
The performance analysis presented in the previous sections considers the parallel decomposition of a single MDST into four independent computational sections. For an individual transform with N = 34, however, the amount of intrinsic parallelism is necessarily limited. In particular, the initial CUDA mapping described in Section 4.1, in which the four computational sections were executed concurrently, was intentionally designed to expose the parallelism introduced by the mathematical reformulation rather than to saturate the execution resources of a massively parallel GPU. A single transform therefore represents a latency-oriented execution scenario and provides too little independent work to achieve high Streaming Multiprocessor (SM) utilization on a modern GPU.
To investigate whether the proposed four-section decomposition can also benefit from the massive parallelism available on GPU architectures, an additional experiment was conducted by processing multiple MDSTs concurrently. This experiment introduces a second level of parallelism (code available at the link in the Supplementary Materials). The decomposition proposed in this paper provides intra-transform parallelism, since each MDST is divided into four independent computational sections, whereas the simultaneous processing of multiple input windows provides inter-transform parallelism. The combination of these two levels allows the amount of available GPU work to increase substantially without modifying the mathematical formulation of the proposed MDST algorithm.
A practical example of such a workload is the processing of a long time series. Let x[n] denote the input signal. For the transform length used throughout this paper, N = 34, consecutive analysis windows can be extracted with a 50% overlap, corresponding to a hop size of:
The b-th analysis window is therefore defined as:
where b = 0,…, B − 1, and B denotes the number of transforms available for concurrent processing. A set of B overlapping windows requires an input sequence of:
samples. Although neighboring windows share 17 input samples, their forward MDST computations do not depend on each other’s outputs. Once the corresponding samples are available, the B transforms can therefore be evaluated concurrently.
It is important to distinguish this throughput-oriented scenario from a strictly latency-constrained single-stream application. Accumulating many windows from a single real-time stream would introduce buffering latency. Consequently, B should be interpreted more generally as the amount of independent transform work simultaneously available to the processor. Such parallelism can originate from buffered segments of a long signal, multiple independent channels, multiple concurrent data streams, or offline/batched signal-processing workloads. For a single isolated transform with stringent latency requirements, a few-core CPU or a dedicated streaming architecture may represent a more natural implementation target. The purpose of the present experiment is therefore to determine how the proposed algorithm behaves when sufficient inter-transform parallelism is available for exploitation on a GPU architecture.
For this additional experiment, a conventional CUDA execution configuration was developed instead of extending the original single-transform configuration by simply launching additional one-thread blocks. Each CUDA block contains 128 threads, corresponding to four complete warps. The four warps are associated with the four independent computational sections of the proposed MDST decomposition:
Within each warp, the lane index identifies the transform being processed. Consequently, one 128-thread block processes up to 32 independent MDST instances, and the number of CUDA blocks required for a batch of B transforms is
This mapping has two advantages. First, all threads belonging to the same warp execute the same computational section, avoiding branch divergence between the four MDST sections. Second, adjacent lanes operate on different transforms but on equivalent coefficients. The input and intermediate arrays were therefore stored using a coefficient-major, transform-minor organization, allowing adjacent lanes to access contiguous memory locations and promoting coalesced global-memory transactions.
The kernel was compiled for the Ampere architecture of the Jetson AGX Orin. The compiler reported using 40 registers per thread, with no register spilling and no static shared-memory allocation. The CUDA occupancy API indicated that the kernel resource requirements permit up to 12 resident 128-thread blocks per SM. This value represents the theoretical resource limit for an individual SM and must not be confused with the occupancy actually obtained by a finite grid. For this reason, the experimental analysis below uses the achieved occupancy measured directly by NVIDIA Nsight Compute, rather than relying only on theoretical occupancy estimates. The scalability experiment was performed for B equal to 1, 32, 128, 256, 512, 1024, 2048, 3072, 4096, 6144, 8192, 12,288, and 16,384.
All measurements in this section were obtained with the GPU of the Jetson AGX Orin locked at its maximum frequency of 1.3 GHz, i.e., the same operating point as in Table 4, and all computations were performed in double precision (FP64), as in the rest of this study.
For each value of B, the kernel execution time was measured using CUDA events. Twenty preliminary kernel launches were used as warm-up operations, followed by 1000 timed launches. The mean kernel execution time per batch was divided by B to obtain the average kernel execution time per transform,
while the processing throughput was calculated as
Because the objective of this experiment is specifically to characterize GPU parallelism and SM utilization, the performance values in Table 11 refer to the CUDA-kernel execution interval. Host-to-device transfers, device-to-host transfers, and host-side final reconstruction were measured separately and were not included in the GPU-utilization metrics.
Table 11.
Scalability and GPU-utilization characteristics of the batched four-section MDST implementation on the Jetson AGX Orin.
Hardware utilization was profiled independently for each value of B using NVIDIA Nsight Compute. Three complementary metrics were retained: achieved occupancy, which characterizes the average number of active warps relative to the architectural limit; SM active percentage, which characterizes the fraction of the execution interval during which the SMs perform active work; and SM throughput, which indicates the achieved SM processing rate relative to the sustained architectural capability.
The results clearly reveal two distinct execution regimes. For a single transform, B = 1, the GPU is strongly underutilized. Only one CUDA block is launched, and the achieved occupancy is 10.07%, the SM-active metric is only 5.23%, and the measured SM throughput is 3.10%. The corresponding kernel execution time is 8.57 µs per transform. These measurements confirm that the amount of parallel work exposed by one N = 34 transform is insufficient to efficiently utilize the massively parallel resources of the Jetson AGX Orin.
Comparing B = 1 and B = 32 is instructive: both use one 128-thread CUDA block and achieve nearly identical occupancy and SM-active values. Yet at B = 1, only one lane per warp computes; at B = 32, all 32 lanes transform independently. Throughput therefore rises from about 0.117 × 106 to 3.09 × 106 transforms/s—a 26.5-fold increase—with no additional resident warps. This highlights the value of exposing inter-transform parallelism within each MDST, as well as its four-way decomposition.
As B increases further, the grid contains enough blocks to distribute work across an increasing number of SMs. For B = 128, four blocks are available, and the SM-active percentage increases to 20.53%. At B = 256, eight blocks increase SM activity to 40.67%, while B = 512 produces 16 blocks, corresponding to one block for each of the 16 SMs of the evaluated Jetson AGX Orin. At this point, the SM-active value reaches 81.55%, and the throughput increases to approximately 52.36 × 106 transforms/s.
Increasing B beyond 512 enables multiple blocks per SM, raising active SMs and resident warps. Occupancy rises from 17.26% at B = 1024 to 45.61% at 4096, 63.78% at 6144, and 80.49% at 12,288. Across this range, SM activity approaches its practical maximum (86.18% to 98.34%), and throughput grows from 59.02% to 80.84%. Application throughput peaks at B = 12,288, reaching approximately 82.17 × 106 transforms/s.
Increasing batch size to B = 16,384 raises occupancy from 80.49% to 84.89% and SM throughput from 80.84% to 81.60%. Yet transform throughput falls slightly, from 82.17 to 82.03 million transforms/s, while execution time remains about 0.0122 µs per transform. Thus, this implementation reaches practical throughput saturation around B = 12,288–16,384; larger batches add queued work without meaningfully improving application throughput.
Minor non-monotonic variations are visible at some intermediate batch sizes, for example between B = 3072 and B = 4096. Nevertheless, the overall trend is unambiguous: increasing the amount of independent work progressively increases SM activity, achieved occupancy, and throughput until the GPU approaches saturation.
Relative to the single-transform case, the maximum measured throughput increases from 0.117 × 106 to approximately 82.17 × 106 transforms/s, corresponding to a 704-fold increase. This factor should not be interpreted as an algorithmic speedup relative to the classical MDST implementation. Instead, it quantifies the improvement in GPU throughput efficiency obtained by increasing the amount of concurrently available independent work.
The experiment clarifies when the proposed MDST decomposition is well-suited to GPUs. A single N = 34 transform has only four coarse, independent sections, offering too little parallelism to efficiently use a modern GPU. For this latency-oriented workload, a few-core CPU or dedicated streaming hardware may be a better fit. With multiple simultaneous transforms, however, intra-transform decomposition combines with inter-transform parallelism. This throughput-oriented approach scales to hundreds of CUDA blocks, reaches approximately 99% SM activity and over 80% measured SM throughput, and processes about 82 million MDSTs per second on the Jetson AGX Orin.
These results demonstrate that the suitability of the proposed algorithm for GPU execution depends on the structure of the application workload rather than on the four-way decomposition alone. The original four-section formulation provides the basic intra-transform concurrency, whereas batched, multichannel, or windowed signal processing supplies the inter-transform concurrency required to exploit a massively parallel GPU architecture. Accordingly, the proposed MDST implementation supports two complementary deployment regimes: low-latency processing on a small number of execution resources when only one or a few transforms are available, and high-throughput GPU processing when a sufficiently large number of independent transforms can be executed concurrently.
5.4. CPU Results
In the era of hybrid architectures such as the Intel Core i9-14900K, performance can no longer be treated as an intrinsic, fixed hardware metric. Instead, it arises from the complex interaction between software and hardware, mediated by the compiler [32,33]. To assess MDST efficiency, the algorithm was tested on a CPU architecture with four compiler-critical optimizations.
First, the test was conducted without any code optimization (−O0 compiler flag). This establishes a baseline for the algorithm’s raw performance. Running the code in its most literal form establishes a “worst-case scenario” performance floor, ensuring the fundamental logic is sound before the compiler masks inefficiencies in the implemented code with automated optimizations.
Secondly, -march=native optimizes hardware utilization by directing the compiler to use the host-specific CPU’s instruction set. On a high-performance processor, this process clarifies whether the code can exploit advanced features such as AVX2 or specialized cache architectures, and assesses the MDST’s adaptability to the efficient-core topology.
Third, enabling O3 optimizations pushes the limits of code throughput by allowing the compiler to perform aggressive transformations, such as loop unrolling and function inlining [34]. This test stage is crucial for determining how much “hidden” performance can be extracted through purely mathematical and logical reorganization, regardless of the specific hardware generation.
Fourth, combining -O3 with -march=native pairs aggressive logic optimization with specialized hardware instructions. Testing is the only way to assess the processor’s true potential, revealing how the system’s Thread Director handles high-density, vectorized code and whether the software can achieve the hybrid architecture’s theoretical peak performance [35].
The results of all these analyses are presented in Table 12. All system-level optimizations listed in Table 2 were applied to CPU cores 28, 29, 30, and 31 to isolate these cores and free them from all system and user threads, yielding performance results attributable solely to the MDST algorithm. The classical MDST implementation was executed on core 28, and the parallel implementation on cores 28, 29, 30, and 31.
Table 12.
MDST performance, executed in parallel on four CPU cores running at 800 MHz.
The performance results in Table 12 provide insight into the behavior of the novel MDST algorithm when executed on four isolated CPU cores of an Intel i9-14900K operating at a fixed frequency of 800 MHz. The comparison between the classical implementation and the parallel version highlights both the impact of compiler optimizations and the inherent advantages of parallel execution.
Across all tested configurations, the parallel implementation consistently outperforms the classical implementation, achieving speedups ranging from 6.71 to 12.13. Even without compiler optimizations (−O0), the parallel algorithm still delivers a substantial 7.93 speedup, demonstrating that its performance gains are driven primarily by algorithmic parallelism rather than compiler-assisted optimizations. This confirms that the proposed decomposition into four concurrent segments is effective even with non-optimized compilation.
A particularly interesting observation concerns the effect of the -march=native flag when used in isolation. While this option is typically expected to improve performance by enabling architecture-specific optimizations, the results show an increase in the execution time of the classical implementation (from 0.049277 ms to 0.075164 ms). In contrast, the parallel implementation remains largely unaffected, maintaining a nearly constant execution time (~0.0062 ms). As a result, the computed speedup reaches a maximum of 12.13 in this configuration. This behavior suggests that at such low frequencies, the overhead of initializing and managing complex, architecture-specific instructions outweighs the benefits of executing them, effectively penalizing code that attempts to use advanced hardware features without logical optimization.
When higher optimization levels are enabled (−O3 and −O3 combined with −march=native), the execution time of the classical algorithm decreases to approximately 0.041 ms. However, the performance of the parallel implementation remains nearly constant across all configurations, fluctuating only slightly between 0.0061 and 0.0062 ms. As a result, the relative speedup decreases to approximately 6.7–6.8. This reduction does not indicate degradation of the parallel algorithm but rather an improvement in the efficiency of the classical implementation due to aggressive compiler optimizations such as loop unrolling, vectorization, and instruction scheduling [34].
Another important aspect is the stability of execution times. The standard deviation for the parallel implementation is consistently very low (on the order of 10−4–10−3 ms), indicating highly deterministic behavior. In contrast, the classical implementation shows higher variability. This difference suggests that parallel execution benefits not only from reduced execution time but also from improved temporal predictability, which is essential in performance-critical applications.
To evaluate whether the CPU performance observed under the isolated and deterministic configuration translates to a more conventional multi-core Linux environment, an additional experiment was performed using a standard Linux configuration. In this experiment, the CPU frequency was maintained at 800 MHz and the computational threads were pinned to the same CPU cores (28, 29, 30, and 31) used in the isolated configuration, so that processor frequency and core placement did not introduce additional confounding factors. The classical and proposed implementations were both compiled using -O3 -march=native.
For the standard Linux configuration, the system-level isolation mechanisms used in the deterministic benchmark were removed: isolcpus, nohz_full, and rcu_nocbs were disabled; IRQ affinity and kernel workqueues were left under their default Linux management; CPU C-states were enabled; and the normal operating-system processes and background services remained active. Thread affinity was nevertheless retained to ensure that the same physical CPU cores executed the corresponding computational sections in both configurations. By keeping the CPU frequency fixed at 800 MHz and using the same CPU cores in both configurations, differences in execution time can be attributed primarily to operating-system activity, interrupts, kernel workqueues, background processes, and CPU idle-state transitions rather than to changes in processor frequency or core placement.
In addition to the mean execution time and standard deviation, the coefficient of variation (CV) was used to quantify the relative timing variability:
where is the mean execution time and SD is its standard deviation. The CV provides a normalized measure of timing variability, allowing the execution-time stability of the two CPU environments to be compared independently of their different mean execution times. Lower CV values indicate more deterministic execution; see Table 13.
Table 13.
CPU execution-time performance and variability under isolated/deterministic and standard Linux configurations.
Table 13 compares CPU performance in isolated/deterministic and standard Linux environments. Removing operating system isolation modestly increases mean execution time: from 41.291 µs to 42.022 µs (1.77%) for classical MDST, and from 6.154 µs to 6.386 µs (3.77%) for the proposed implementation.
Standard Linux primarily increases execution-time variability, not mean time. The classical implementation’s CV rises from 15.08% in isolation to 21.65%; the proposed implementation’s rises from 12.36% to 20.39%. This reflects OS scheduling, interrupts, kernel workqueues, background services, CPU idle states, and other asynchronous activity suppressed in the deterministic configuration.
The proposed algorithm’s performance advantage is largely preserved: the speedup decreases only from 6.71 in isolation to 6.58 under standard Linux (about 1.94%). Thus, the MDST decomposition’s substantial acceleration is not due to core isolation, which primarily improves measurement stability and reproducibility by reducing operating-system-related timing variability.
These results indicate that the proposed implementation retains its computational advantage in a conventional multi-core Linux environment. The isolated configuration should therefore be viewed as a controlled benchmarking environment for characterizing the algorithm’s intrinsic execution behavior, rather than as a prerequisite for practical deployment. On typical Linux workstations or compute nodes, somewhat higher execution-time variability can be expected, but the relative performance benefit of the proposed parallel decomposition remains essentially unchanged.
Overall, the results demonstrate that the proposed parallel MDST algorithm delivers significant and consistent performance improvements on CPU architectures, regardless of compiler optimization levels. While compiler optimizations can reduce the gap by improving the classical implementation, they do not substantially affect the parallel version, which already operates near its optimal performance due to efficient workload distribution across the four cores and an efficient algorithm implementation.
6. Discussion
In [5], two novel systolic-array-based algorithms and VLSI architectures were proposed for the efficient implementation of the 1-D Modified Discrete Sine Transform (MDST). The primary objective of the research was to reduce hardware complexity and increase execution speed through a highly regular, modular hardware organization. The authors start from the classical formulation of the MDST and reformulate the transform into forms that can be efficiently mapped into a VLSI architecture. To achieve this, several auxiliary input sequences are introduced, as in the approach presented in this paper. These transformations allow the original MDST computation to be reformulated as matrix-vector products with highly regular, repetitive structures, which are particularly well-suited to parallel hardware implementation [5]. The second proposed algorithm in [5] reformulates the problem in a way that allows the replacement of general-purpose multipliers with constant multipliers. The same approach was also used in this research.
Due to the major similarity between the two approaches (the one presented in [5] and the proposed algorithm in this paper), which is given by the use of auxiliary input sequences and intermediate reformulations of the original MDST expression, the transformation of regular computational patterns into reduced arithmetic redundancy, and the exploitation of symmetry properties of the MDST to reduce the number of operations and improve execution efficiency, the following state-of-the-art algorithm [5] was selected to be evaluated against the algorithm presented in this paper.
As a direct result, the algorithm from [5] was implemented and evaluated under the same conditions as those used to test the algorithm described in this paper. This algorithm decomposes the MDST into two sections that operate concurrently. Another distinction is the number of processed samples. More specifically, the implementation described in [5] uses 26 samples, whereas the algorithm proposed in this paper operates on 34 samples.
The results are presented in Table 14 and Table 15. The results in Table 14 were obtained using the Jetson AGX Xavier development board. In Table 15, the results are based on the Jetson AGX Orin development board.
Table 14.
Performance analysis of a state-of-the-art MDST algorithm versus the proposed MDST algorithm (done on the Jetson AGX Xavier development board).
Table 15.
Performance analysis of a state-of-the-art MDST algorithm versus the proposed MDST algorithm (done on the Jetson AGX Orin development board).
The comparative evaluation against the state-of-the-art MDST implementation proposed in [5] demonstrates that the algorithm introduced in this paper consistently achieves superior execution performance across all tested GPU platforms and operating frequencies. Although both approaches rely on auxiliary input-sequence reformulation and exploit the symmetry properties of the MDST to reduce arithmetic complexity, the proposed implementation introduces a more efficient computational decomposition by dividing the transform into four independent parallel sections rather than two. This finer-grained parallelism improves workload distribution across CUDA cores and Streaming Multiprocessors, thereby increasing the achievable degree of concurrency and reducing overall execution latency.
The results presented in Table 11 and Table 12 show that the proposed algorithm consistently achieves higher acceleration factors than the implementation from [5]. On the Jetson AGX Xavier platform, the proposed method improves the speedup from 17.54 to 22.58 at minimum frequency and from 6.88 to 7.55 at maximum frequency. Similarly, on the Jetson AGX Orin platform, the speedup increases from 27.23 to 28.75 at minimum frequency and from 8.67 to 9.06 at maximum frequency. These results clearly indicate that the proposed restructuring provides measurable performance benefits regardless of the target GPU architecture or operating regime.
An important aspect of this comparison is that the proposed algorithm processes a larger input dataset than the implementation from [5]. More specifically, the state-of-the-art algorithm operates on 26 samples, whereas the proposed implementation processes 34 samples. Despite this increased computational workload, the proposed method still achieves lower execution times. This behavior confirms that the reduction in arithmetic redundancy, the improved memory-access efficiency, and the enhanced parallel decomposition effectively compensate for the increased volume of data processed.
Overall, the comparative analysis validates the effectiveness of the proposed MDST decomposition strategy and demonstrates that increasing the degree of parallel segmentation from two sections to four sections constitutes a highly efficient approach for modern GPU architectures. The obtained results confirm that the proposed implementation offers better scalability, improved hardware utilization, and higher computational efficiency than the current state-of-the-art solution presented in [5].
The experimental results support the main contributions outlined in the Introduction. The proposed mathematical reformulation reduces the arithmetic complexity of the MDST and reveals four independent computational sections. GPU and CPU evaluations confirm that this decomposition can be efficiently mapped to different parallel architectures, although the GPU experiments also show that a single transform does not provide sufficient parallelism to fully utilize a modern GPU. The additional batched analysis demonstrates that high GPU utilization is achieved when the four-way intra-transform parallelism is combined with sufficient inter-transform parallelism. Furthermore, memory-access and energy measurements confirm that the performance gains are associated not only with parallel execution but also with reduced arithmetic and memory-access complexity.
7. Conclusions
This paper introduces a novel parallel implementation of the Modified Discrete Sine Transform (MDST) by decomposing the original transform into four independent computational sections that can execute concurrently. The proposed reformulation significantly reduces arithmetic complexity by minimizing the number of multiplications and memory-access operations while improving workload distribution across parallel processing units. Compared to the classical MDST formulation, the proposed approach achieves substantially lower execution times and improved computational efficiency on both GPU and CPU architectures.
The evaluation across multiple GPU platforms, including the Jetson AGX Xavier, Jetson AGX Orin, and GeForce RTX 4090, demonstrated that the proposed algorithm consistently delivers substantial performance gains under both low- and maximum-frequency operating conditions. Depending on the platform and frequency regime, the proposed implementation achieved acceleration factors ranging from 7.55 to 76.85 relative to the classical MDST implementation. These results confirm that the proposed decomposition strategy is highly effective for massively parallel architectures and remains efficient even under constrained operating conditions.
Furthermore, compute-only GPU energy measurements on the Jetson AGX Xavier showed that the four-section implementation reduced GPU energy consumption by approximately two orders of magnitude at both investigated GPU frequencies, demonstrating a substantial improvement in energy efficiency. This energy analysis complements the execution-time evaluation by demonstrating that the performance improvement is accompanied by a substantial reduction in the energy required for GPU computation. Accordingly, energy-per-transform provides an additional design metric for selecting the operating conditions of the proposed algorithm in power- and thermally constrained systems. The reported energy results are specific to the Jetson AGX Xavier and are not intended as a cross-platform energy ranking.
The memory-access analysis further demonstrated that the proposed implementation drastically reduces global and local memory transactions while efficiently exploiting shared memory and cache hierarchies. The reduction in memory-access overhead, combined with the algorithm’s lower arithmetic complexity, directly contributes to the observed improvements in execution speed. Moreover, the experimental results showed that modern GPU architectures with advanced cache systems, higher memory bandwidth, and improved warp schedulers particularly benefit the proposed execution model, with the Ada Lovelace architecture providing the highest acceleration factors among all evaluated platforms.
An additional contribution of this work is the complementary CPU-based evaluation conducted on isolated cores of an Intel Core i9-14900K processor. Although the algorithm was primarily designed for GPU execution, the CPU experiments showed that the proposed decomposition also scales efficiently on multi-core architectures, achieving speedups of 6.71 to 12.13, depending on the compiler optimization strategy. Furthermore, the low standard deviation values for the parallel implementation indicate highly deterministic temporal behavior, which is particularly important for real-time and embedded processing applications.
Future work will investigate FP32, mixed-precision, and fixed-point implementations, including batched reformulations suitable for Tensor Core execution, with particular emphasis on the trade-off between throughput, energy efficiency, and numerical accuracy.
The comparative analysis of the state-of-the-art MDST implementation presented in [5] confirmed the superiority of the proposed algorithm. Despite processing more input samples, the proposed implementation consistently achieved lower execution times and higher acceleration factors due to its improved four-section parallel decomposition and reduced memory-access overhead.
Overall, the results demonstrate that the proposed MDST algorithm is an efficient and scalable solution for high-performance signal-processing applications. The combination of reduced arithmetic complexity, optimized memory utilization, explicit parallel decomposition, and portability across GPU and CPU architectures makes the implementation particularly suitable for modern embedded systems, edge AI platforms, and high-performance computing environments.
Supplementary Materials
The CUDA source code, compilation scripts, and profiling tools used to reproduce the experiments presented in this study are publicly available at https://github.com/dmdobrea/MDST-with-4-paralel-sections. URL accessed 15 October 2026.
Author Contributions
Conceptualization, D.F.C. and D.M.D.; methodology, D.F.C. and D.M.D.; software, D.M.D.; validation, D.F.C. and D.M.D.; formal analysis, D.F.C. and D.M.D.; investigation, D.M.D.; resources, D.M.D.; writing—original draft preparation, D.F.C. and D.M.D.; writing—review and editing, D.F.C. and D.M.D.; visualization, D.M.D.; supervision, D.M.D.; project administration, D.M.D. All authors have read and agreed to the published version of the manuscript.
Funding
This research received no external funding.
Informed Consent Statement
Not applicable.
Data Availability Statement
The original contributions presented in this study are included in the article. Further inquiries can be directed to the corresponding author.
Acknowledgments
The authors have reviewed and edited the output and take full responsibility for the content of this publication.
Conflicts of Interest
The authors declare no conflicts of interest.
Abbreviations
The following abbreviations are used in this manuscript:
| CPU | Central Processing Unit |
| CUDA | Compute Unified Device Architecture |
| FP16, 32, 64 | Floating-point on 16, 32, or 64 bits |
| GB | Gigabyte |
| GHz | Giga Hertz |
| INT1, 4, 8 | Integer representation on 1, 4, 8 bits |
| GPU | Graphics Processing Unit |
| MHz | Mega Hertz |
| MDST | Modified Discrete Sine Transform |
| MDCT | Modified Discrete Cosine Transform |
| SM | Streaming Multiprocessor |
| TF32 | TensorFloat-32 |
| TFLOPS | Tera FLOPS |
| TOPS | Tera Operations Per Second |
| VLSI | Very large-scale integration |
References
- Chen, C.H.; Liu, B.D.; Yang, J.F. Recursive Architectures for Realizing Modified Discrete Cosine Transform and Its Inverse. IEEE Trans. Circuits Syst. II Analog. Digit. Signal Process. 2003, 50, 38–45. [Google Scholar] [CrossRef]
- Lei, S.F.; Lai, S.C.; Cheng, P.Y.; Luo, C.H. Low Complexity and Fast Computation for Recursive MDCT and IMDCT Algorithms. IEEE Trans. Circuits Syst. II Express Briefs 2010, 57, 571–575. [Google Scholar] [CrossRef] [Scilit]
- Lai, S.C.; Yeh, Y.P.; Tseng, W.C.; Lei, S.F. Low-Cost and High-Accuracy Design of Fast Recursive MDCT/MDST/IMDCT/IMDST Algorithms and Their Realization. IEEE Trans. Circuits Syst. II Express Briefs 2012, 59, 65–69. [Google Scholar] [CrossRef] [Scilit]
- Chiper, D.F.; Cracan, A. A New VLSI Algorithm for a VLSI Implementation of MDST using Obfuscation Technique. In Proceedings of the International Symposium on Electronics and Telecommunications, Timisoara, Romania, 10–11 November 2022. [Google Scholar]
- Chiper, D.F.; Cracan, A. New Systolic Array Algorithms and VLSI Architectures for 1-D MDST. Sensors 2023, 23, 6220. [Google Scholar] [CrossRef] [Scilit] [PubMed]
- Britanak, V.; Rao, K.R. An Efficient Implementation of the Forward and Inverse MDCT in MPEG Audio Coding. IEEE Signal Process. Lett. 2001, 8, 48–51. [Google Scholar] [CrossRef] [Scilit]
- Lee, S.W. Improved Algorithm for Efficient Computation of the Forward and Backward MDCT in MPEG Audio Coder. IEEE Trans. Circuits Syst. II Analog Digit. Signal Process. 2001, 48, 990–994. [Google Scholar] [CrossRef]
- Nikolajevic, V.; Fettweis, G. Improved Implementation of MDCT in MP3 Audio Coding. In Proceedings of the Joint Conference of the 10th Asia-Pacific Conference on Communications and the 5th International Symposium on Multi-Dimensional Mobile Communications Proceedings, Beijing, China, 29 August–1 September 2004. [Google Scholar]
- Britanak, V. New Universal Rotation-Based Fast Computational Structures for an Efficient Implementation of the DCT-IV/DST-IV and Analysis/Synthesis MDCT/MDST Filter Banks. Signal Process. 2009, 89, 2213–2232. [Google Scholar] [CrossRef] [Scilit]
- Princen, J.P.; Bradley, A.B. Analysis/Synthesis Filter Bank Design Based on Time Domain Aliasing Cancellation. IEEE Trans. Acoust. Speech Signal Process. 1986, 34, 1153–1161. [Google Scholar] [CrossRef] [Scilit]
- Princen, J.P.; Johnson, A.W.; Bradley, A.B. Subband/Transform Coding Using Filter Bank Designs Based on Time Domain Aliasing Cancellation. In Proceedings of the ICASSP, 1987, IEEE International Conference on Acoustics, Speech, and Signal Processing, Dallas, TX, USA, 6–9 April 1987; pp. 2161–2164. [Google Scholar]
- Britanak, V. A Survey of Efficient MDCT Implementations in MP3 Audio Coding Standard: Retrospective and State-of-the-Art. Signal Process. 2011, 91, 624–672. [Google Scholar] [CrossRef] [Scilit]
- Advanced Television Systems Committee. ATSC Standard A/52:2018; Digital Audio Compression (AC-3, E-AC-3). ATSC: Washington, DC, USA, 2018.
- Bosi, M.; Brandenburg, K.; Quackenbush, S.; Fielder, L.; Akagiri, K.; Fuchs, H.; Dietz, M.; Herre, J.; Davidson, G.; Oikawa, Y. ISO/IEC MPEG-2 Advanced Audio Coding. J. Audio Eng. Soc. 1997, 45, 789–814. [Google Scholar]
- Britanak, V.; Arriëns, H.J.L. Fast Computational Structures for an Efficient Implementation of the Complete TDAC Analysis/Synthesis MDCT/MDST Filter Banks. Signal Process. 2009, 89, 1379–1394. [Google Scholar] [CrossRef] [Scilit]
- Britanak, V.; Rao, K.R. A Unified Fast MDCT/MDST Computation in the Evenly Stacked Analysis/Synthesis System. Circuits Syst. Signal Process. 2002, 21, 415–426. [Google Scholar] [CrossRef] [Scilit]
- Suresh, K.; Sreenivas, T.V. Linear Filtering in DCT-IV/DST-IV and MDCT/MDST Domain. Signal Process. 2009, 89, 1081–1089. [Google Scholar] [CrossRef] [Scilit]
- Harris, M. How to Implement Performance Metrics in CUDA C/C++, Nvidia developer technical blog. Available online: https://developer.nvidia.com/blog/how-implement-performance-metrics-cuda-cc/ (accessed on 3 October 2026).
- Cheng, J.; Grossman, M.; McKercher, T. Professional CUDA C Programming; John Wiley & Sons, Inc.: Indianapolis, IN, USA, 2014; pp. 273–275. [Google Scholar]
- Stokfiszewski, K.; Wieloch, K.; Yatsymirskyy, M. An efficient implementation of one-dimensional discrete wavelet transform algorithms for GPU architectures. J. Supercomput. 2022, 78, 11539–11563. [Google Scholar] [CrossRef] [Scilit]
- Keluskar, Y.C.; Singhaniya, N.G.; Vyawahare, V.A.; Jage, C.S.; Patil, P.; Espinosa-Paredes, G. Solution of nonlinear fractional-order models of nuclear reactor with parallel computing: Implementation on GPU platform. Ann. Nucl. Energy 2024, 195, 11013. [Google Scholar] [CrossRef] [Scilit]
- Velicka, D.; Vysocky, O.; Riha, L. Methodology for GPU Frequency Switching Latency Measurement. In Proceedings of the IEEE International Parallel and Distributed Processing Symposium Workshops, Milano, Italy, 3–7 June 2025. [Google Scholar]
- Chiper, D.F.; Dobrea, D.M. A Novel Low-Complexity and Parallel Algorithm for DCT IV Transform and Its GPU Implementation. Appl. Sci. 2024, 14, 7491. [Google Scholar] [CrossRef] [Scilit]
- Chiper, D.F.; Dobrea, D.M. A Novel DST-IV Efficient Parallel Implementation with Low Arithmetic Complexity. Electronics 2025, 14, 4137. [Google Scholar] [CrossRef] [Scilit]
- Qiu, B.; Chen, Y.; Khooi, X.Z.; Song, C.H.; Chan, M.C. Revisiting CPU Performance Scaling for Energy-Efficient Packet Processing Applications. In Proceedings of the 16th ACM International Conference on Future and Sustainable Energy Systems, Rotterdam, The Netherlands, 17–20 June 2025. [Google Scholar]
- Malla, I.; Metsch, T.; Townend, P. Power Aware Cluster Orchestration: Taxonomy, Initial Results, and Challenges. In Proceedings of the 18th IEEE/ACM International Conference on Utility and Cloud Computing, Nantes, France, 1–4 December 2025. [Google Scholar]
- Gallenmueller, S.; Wiedner, F.; Naab, J.; Carle, G. How Low Can You Go? A Limbo Dance for Low-Latency Network Functions. J. Netw. Syst. Manag. 2023, 31, 1–28. [Google Scholar] [CrossRef] [Scilit]
- Zhou, Z.; Liu, Z.; Zhang, S.; Li, J.; Du, D.; Sun, M.; Wang, Z.; Liu, H.; Xu, G. Towards Deterministic Sub-0.5 us Response on Linux through Interrupt Isolation. arXiv 2025, arXiv:2509.03855. [Google Scholar]
- Deng, Z.; Zhang, Z.; Li, D.; Guo, Y.; Ye, Y.; Ren, Y.; Jia, N.; Hu, X. Interference-free Operating System: A 6 Years’ Experience in Mitigating Cross-Core Interference in Linux. In Proceedings of the IEEE Real-Time Systems Symposium, York, UK, 10–13 December 2024. [Google Scholar]
- Hozzová, J.; Filipovic, J.; Nezarat, A.; Ol’ha, J.; Petrovic, F. Searching CUDA code autotuning spaces with hardware performance counters: Data from benchmarks running on various GPU architectures. Data Brief. 2021, 39, 107631. [Google Scholar] [CrossRef] [Scilit] [PubMed]
- Marin, I.; Goga, N.; Goga, M. Benchmarking MD systems simulations on the Graphics Processing Unit and Multi-Core Systems. In Proceedings of the IEEE International Symposium on Systems Engineering, Edinburgh, Scotland, 3–5 October 2016. [Google Scholar]
- Gong, Z.X.W.; Chen, Z.; Szaday, J.; Wong, D.; Sura, Z.; Watkinson, N.; Maleki, S.; Padua, D.; Veidenbaum, A.; Nicolau, A.; et al. An Empirical Study of the Effect of Source-Level Loop Transformations on Compiler Stability. Proc. ACM Program. Lang. 2018, 2, 126. [Google Scholar] [CrossRef] [Scilit]
- Deakin, T. Performance Portability across Diverse Computer Architectures. In Proceedings of the IEEE/ACM International Workshop on Performance, Portability and Productivity in HPC, Denver, CO, USA, 22 November 2019. [Google Scholar]
- She, Y.; Huang, Y.; Liu, J.; Cheung, R.C.C.; Yan, H. A Source-to-Source Compiler to Enable Hybrid Scheduling for High-Level Synthesis. Electronics 2025, 14, 4578. [Google Scholar] [CrossRef] [Scilit]
- Saez, J.C.; Prieto-Matias, M. Evaluation of the Intel thread director technology on an Alder Lake processor. In Proceedings of the 13th ACM SIGOPS Asia-Pacific Workshop on Systems, Singapore, 23–24 August 2022. [Google Scholar]
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2026 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license.
