This section presents the results of the experimental study, including descriptions of the data, methodology, the experimental conditions, and a discussion of the obtained results.
4.1. Data
This work employs three benchmark datasets: the Poker Hand [
29], a medical dataset characterizing children diagnosed with insulin-dependent diabetes mellitus [
30], and the Fashion Product Classification dataset [
31].
The Poker Hand dataset, sourced from the UCI Machine Learning Repository [
32], comprises 1,000,000 instances, each representing a five-card hand taken from a standard 52-card deck. Every card is specified by its suit and rank, resulting in ten conditional attributes per instance. Decision attribute identifies the resulting poker combination, covering ten classes arranged according to decreasing frequency: no combination, one pair, two pairs, three of a kind, straight, flush, full house, four of a kind, straight flush, and royal flush.
Type 1 diabetes mellitus is a chronic metabolic condition marked by impaired insulin production, requiring therapeutic insulin supplementation. The corresponding dataset contains 107 patient records, described by twelve conditional attributes, including physical examination findings and laboratory measurements, and one decision attribute representing the presence or absence of microalbuminuria. The original dataset is presented in [
30], with an extended software-based evaluation provided in Chapter 6 of [
3].
The Fashion Product Classification dataset, sourced from the Kaggle repository, comprises 44,446 instances, each representing a fashion product information including clothing categories, product types, colors, seasons, gender labels, and display names. Every object is specified by attributes named id, gender, masterCategory, subCategory, articleType, baseColour, season, year, usage, and productDisplayName. id and productDisplayName were used as identification attributes and usage was a decision attribute, resulting in seven conditional attributes per instance.
For experimental purposes, the Poker Hand dataset was downsampled to construct subsets of sizes between 1000 and 500,000 objects, while maintaining the original distribution of decision classes based on random selection of the objects. Conversely, the diabetes dataset was expanded to sizes between 1000 and 1,000,000 objects by replicating records from the source data by duplication of existing objects and sorting them randomly after extension to avoid creating repeatable data patterns. Similar rules were used for Fashion Product Classification dataset, both for downsampling and expansion.
All datasets for hardware implementation were subsequently converted into a binary format. For all datasets, each attribute value was coded using 4 bits. For the Fashion dataset, attributes subCategory and articleType used two 4-bit slots for coding its values. Consequently, each object occupied 44 bits in the Poker Hand dataset, 52 bits in the diabetes dataset, and 40 bits in the fashion dataset. To comply with FPGA memory alignment requirements, every object was padded to a 64-bit word by appending zero-valued bits.
4.2. Results
The software implementation of the REDUCT-MCPHIDM algorithm described in
Section 2.3 was developed in the C programming language. It should be emphasized that the implementation utilized 1 to 4 CPU cores to provide a fair basis for comparison between the PC and FPGA solutions. The experiments were conducted on a workstation equipped with 32 GB of RAM and a 4-core Intel Core i7-1185G7 3.0 GHz processor, running Windows 11. The source code was compiled using the GNU GCC 12.1 compiler with the
O2 compilation setting. High-computational parts of the software solution were implemented for parallel and multi-core excution using OpenMP 6.0 library.
Quartus II 13.1 was used for the compilation code in VHDL language. The synthesized solution was deployed on a Terasic DE-3 evaluation board containing a Stratix III EP3SL150F1152C2N FPGA device (Altera, San Jose, CA, USA). The FPGA operated at a 50 MHz clock frequency derived from the on-board oscillator, which was used for all sequential components of the design. The implemented REDUCT-MCPHIDM algorithm corresponds to the version presented in
Section 2.3. A selected value of the FPGA clock frequency was used to ease the comparison between previous papers and the corresponding one.
The NIOS II softcore processor, together with the embedded-system peripherals, was generated using the Qsys 13.1 IDE. The accompanying NIOS II software was implemented in C and compiled via the NIOS II Software Build Tools for Eclipse.
Timing measurements were performed using a LeCroy WaveSurfer 104MXs-B oscilloscope (1 GHz BW, 10 GS/s sampling). For execution times that could not be measured by oscilloscope, on-chip hardware timers instantiated within the FPGA were employed. Each presented time result is the mean value of minimum 10 consequent runs of the solution on the same dataset. Relative standard deviation for measured run results did not exceeded 0.5% for hardware implementations and 2% for software solutions.
It should be noted that the PC clock frequency is approximately
times higher than the FPGA system clock. It should be noted that this value represents only a theoretical algorithmic equivalence and is not a directly transposable practical advantage in all conditions, where the solution can adapted. Experiments were conducted using the datasets described in
Section 4.1, with sizes ranging from 1000 to 1,000,000 objects. In every case, preprocessing (binary transformation and discretization) was performed on the PC.
Table 3 presents the execution times of the hardware (
) and software (
) implementations of the REDUCT-MCPHIDM algorithm for all datasets. The lower index in
denotes the number of CPU cores used. The hardware solution in the first configuration employed a single instance of the
generator block. Segments of the dataset were stored in
and
. Software implementation used 1 CPU core for calculations.
The last columns of the tables show the acceleration factor for both types of implementation. The abbreviations used for dataset size are and .
Table 4 presents the execution times for the hardware (
) and software (
and
) implementations for the configuration, where the hardware system employs two instances of the
module, while the software solution was executed on one and two CPU cores. The corresponding segments of the dataset are distributed across
,
, and
.
Table 5 presents the execution times for the hardware (
) and software (
and
) implementations for the configuration, where the hardware system utilizes four instances of the
module, while the software solution was executed on one and four CPU cores. The corresponding dataset segments were stored in
,
,
,
, and
.
Figure 3,
Figure 4 and
Figure 5 show the relationship between the number of objects and the execution time for both types of implementation and configuration of
modules, for the Poker Hand, Diabetes, and Fashion datasets respectively. Axes are presented on a logarithmic scale.
The presented results demonstrate a substantial improvement in data-processing performance across all evaluated configurations. When compared with the software implementation of the row-by-row discernibility matrix computation, the hardware execution achieves a speed-up of approximately 5 times when using a single module and up to 16 times when four modules are employed, compared with the same number of CPU cores used in software implementation. After accounting for the clock frequency difference between the PC and FPGA, the effective speed-up increases significantly. For a fixed hardware configuration used in the experiments, the speed-up remains nearly constant and is consistent across all evaluated dataset sizes.
The hardware processing times for all datasets are identical. The bit-width of individual objects does not influence execution time as long as it fits within the defined memory boundaries. Each hardware processing unit always operates on fixed-size 64-bit words and executes the same sequence of operations regardless of the dataset’s original attribute width. This holds for all configurations of the proposed reduct computation hardware modules.
The different hardware configurations and FPGA resource usage is presented in
Table 6. The
M9K column denotes the total number of M9K-type RAM blocks used,
Max. frequency specifies maximum possible working frequency, while
Max. power presents peak power consumption for a given configuration.
The average speed-up obtained by increasing the number of modules is not linear. The measured improvements are:
The reduction in scaling efficiency is primarily due to the overhead introduced by the NIOS II processors, which must copy binary data into the
memories. It took around 3 to 6% of reduct calculation time. As the number of
modules increases, this data transfer overhead becomes more significant, thereby reducing the overall speed-up. Measured data transfer times are presented in
Table 7. Columns for different number of mRED modules shows total time for data transfers and it can be noticed that reduction value is not linear with the number of modules because of increasing overhead related to data and results exchange.
The same situation for average speed-up factor can be noticed for the increasing number of CPU cores in software implementation. The average speed-up obtained by increasing the number cores is not linear and the measured values are:
1.691, 1.734, and 1.797 times for a solution with two CPU cores for the Fashion, Diabetes, and Poker Hand datasets respectively;
2.859, 3.007, and 3.229 times for a solution with four CPU cores for the Fashion, Diabetes, and Poker Hand datasets respectively.
The reduction in scaling efficiency is due to the implementation details related to the data path defined in parallel implementation. Parts of the decision table as well as intermediate results had to be copied to memory spaces used by different CPU cores. The difference in speed-up factor between both datasets is related to the number of conditional attributes as well as the data type used for encoding value of each attribute.
4.2.1. Solution Scalability
Expanding the horizontal size of the dataset (i.e., increasing the number of condition attributes) is possible; however, it requires enlarging the comparator structures in the DMGM module and increasing the width of the ones counters in the RGM and ARM modules. This is necessary because the system must process a wider binary word within the same clock cycle. Such modifications substantially increase FPGA resource requirements. In these cases, a larger FPGA device would be necessary, although modern high-capacity chips, such as the Intel Agilex I-Series 040 FPGA, which offers millions of logical elements, could satisfy these demands. As it was mentioned, the currently implemented design occupied 99,128 out of 113,600 available logic elements (approximately 87%) of the Intel Stratix III EP3SL340 device, leaving insufficient resources for a significantly larger number of modules while maintaining timing closure and routing feasibility. Therefore, the limit of four modules reflects the capabilities of the selected hardware platform rather than an inherent limitation of the proposed architecture. It should be noted that the proposed architecture is modular and scalable. Assuming theoretical approximate linear resource scaling, a single mRED module requires about 24,800 logic elements with additional resources for modules’ control logic, data, and results synchronization. Consequently, modern high-density FPGA devices could support substantially larger numbers of modules. For example, Intel Agilex devices offering 1–2.7 million logic elements could theoretically accommodate approximately 40–100 mRED modules, while comparable Xilinx Versal devices would provide a similar level of scalability. Practical factors such as routing congestion, data transfer overhead, and timing constraints will have a significant impact on those values, as it was presented in the previous paragraph with the discussion about speed-up factor decrease in correspondence with higher number of hardware modules.
4.2.2. Computational Complexity
The comparison of attribute values between two objects, as well as the retrieval of an element from the discernibility matrix, are considered elementary operations. Let m denote the number of conditional attributes and n the number of objects in the decision table. The computational complexity of the software-based implementation of reduct computation using the REDUCT-MCPHIDM algorithm is . In contrast, the hardware implementation reduces the computational complexity to . The elimination of one m results from the fact that the proposed solution enables simultaneous comparison of all attributes in constant time —the values of all attributes for a pair of objects are processed within a single clock cycle. Furthermore, the reduct computation module performs comparisons across multiple objects in parallel. Assuming that in typical applications , it can be concluded that the asymptotic computational complexity of both software and hardware approaches remains comparable.