Skip to content
STIMSMITH

Parallelized Fork

Technique

Parallelized Fork is an eUVM multicore parallelization technique in which forked tasks process slices of a large transaction or instruction container on separate CPU threads, with thread affinity configured through Fork objects and synchronization performed by joining the forks.

First seen 5/25/2026
Last seen 5/25/2026
Evidence 3 chunks
Wiki v1

WIKI

Overview

A Parallelized Fork is a testbench parallelization technique described for eUVM in the context of optimizing the RISCV-DV generator. The technique uses eUVM's fork construct to create multiple tasks and distribute them across CPU threads associated with parallel task executors. It is useful when a sequence contains thousands of transactions stored in a container such as a queue or array: the container is sliced, and each forked task processes one slice. [parallelized-fork-container-slicing]

In the RISCV-DV optimization work, the technique is identified as a suitable approach for large instruction sequences. The eUVM implementation differs from SystemVerilog because eUVM can execute forked processes on multiple cores and can delegate a newly forked process to a specified processor thread. [parallelized-fork-riscvdv-large-sequences]

READ FULL ARTICLE →

NEIGHBORHOOD

No graph connections found for this entity yet. It may appear in future ingestion runs.

explore full graph →

RELATIONSHIPS

2 connections
riscv-dv ← uses 100% 2e
A parallelized fork is used in RISCV-DV to mitigate bottlenecks in instruction stream generation.
eUVM ← uses 100% 2e
eUVM allows forking tasks distributed on multiple CPU threads via set_thread_affinity.