Optimization and Parallelization of a Delay-and-Sum Ultrasound Algorithm on a StarFive VisionFive RISC-V board

dc.contributor.advisorSouza, Samuel Xavier de
dc.contributor.advisorID0000-0001-8747-4580
dc.contributor.authorMorais, Mateus Rodrigues de
dc.contributor.authorID0009-0002-1098-1335
dc.contributor.authorLatteshttp://lattes.cnpq.br/5325445607671290
dc.contributor.referees1Brito Junior, Agostinho de Medeiros
dc.contributor.referees1ID0000-0002-2054-2339
dc.contributor.referees2Silva, Sérgio Natan
dc.contributor.referees2ID0000-0002-6958-6754
dc.date.accessioned2025-07-17T15:06:22Z
dc.date.available2025-07-17T15:06:22Z
dc.date.issued2025-07-08
dc.description.abstractEste trabalho detalha o processo de otimização e paralelização de uma implementação em C do algoritmo de ultrassom Delay-and-Sum (DAS), com uma análise de desempenho conduzida na placa StarFive VisionFive, de arquitetura RISC-V. O estudo se inicia com um porte em C de uma implementação de DAS feita em MATLAB, que inicialmente apresentou um tempo de execução de 202,58 segundos para o maior caso de teste. Um processo iterativo de otimizações foi aplicado para melhorar o desempenho do algoritmo. Essas etapas incluíram o refinamento da estratégia de alocação de memória para eliminar cópias de dados redundantes, a substituição de arquivos de entrada CSV (Comma-Separated Values) por um método de leitura de dados binários mais rápido e o inlining de funções para reduzir a sobrecarga trazida por chamadas frequentes a pequenas funções auxiliares externas. A etapa final de otimização envolveu a paralelização do principal gargalo computacional do algoritmo, uma estrutura de loop aninhado dentro da lógica de beamforming do DAS, usando a API OpenMP e a subsequente aplicação de flags de otimização do compilador. Essa paralelização foi testada no processador dual-core da placa VisionFive. Uma condição de corrida foi identificada e resolvida usando a diretiva atomic do OpenMP para garantir a saída correta. O efeito cumulativo dessas otimizações resultou em uma redução do tempo total de execução para 12,9523 segundos, representando uma diminuição de mais de 15 vezes na velocidade de execução em relação à implementação original. A região paralela atingiu uma eficiência de 97,94% em dois núcleos para o maior tamanho de problema sem as flags de otimização do compilador, indicando sobrecarga paralela mínima. Este estudo demonstra a viabilidade da placa StarFive VisionFive RISC-V para tarefas de imagem médica computacionalmente exigentes, destacando o potencial do hardware de código aberto para permitir o desenvolvimento de uma tecnologia médica acessível e poderosa.
dc.description.resumoThis work details the optimization and parallelization of a C implementation of the Delay-and-Sum (DAS) ultrasound beamforming algorithm, with a performance analysis conducted on a StarFive VisionFive RISC-V board. The study began with a C port of a MATLAB DAS implementation, which initially exhibited an execution time of 202.58 seconds for the largest test case. A series of iterative optimizations was applied to improve performance. These steps included refining the memory allocation strategy to eliminate redundant data copies, replacing inefficient Comma-Separated Values (CSV) file input with a faster binary data reading method, and employing function inlining to reduce the overhead from frequent calls to small helper functions. The final optimization stage involved parallelizing the algorithm's primary computational bottleneck, a nested loop structure inside the beamforming logic, using the OpenMP API, and subsequently applying compiler optimization flags. This parallelization was tested on the dual-core processor of the VisionFive board. A race condition was identified and resolved using the atomic OpenMP directive to ensure correct output. The cumulative effect of these optimizations resulted in a reduction of the total execution time to 12.9523 seconds, marking a speedup of more than 15 times from the original implementation. The parallel region achieved an efficiency of 97.94% on two cores for the highest problem size without compiler optimization flags, indicating minimal parallel overhead. This study demonstrates the viability of the StarFive VisionFive RISC-V board for computationally demanding medical imaging tasks, highlighting the potential of open-source hardware to enable the development of accessible and powerful medical technology.
dc.identifier.citationMORAIS, Mateus Rodrigues de. Optimization and Parallelization of a Delay-and-Sum Ultrasound Algorithm on a StarFive VisionFive RISC-V board. 2025. ​39 f. Trabalho de Conclusão de Curso (Graduação em Engenharia de Computação) - Centro de Tecnologia, Universidade Federal do Rio Grande do Norte, Natal, RN, 2025.
dc.identifier.urihttps://repositorio.ufrn.br/handle/123456789/64510
dc.language.isoen_US
dc.publisherUniversidade Federal do Rio Grande do Norte
dc.publisher.countryBrazil
dc.publisher.departmentEngenharia de Computação e Automação
dc.publisher.initialsUFRN
dc.publisher.programEngenharia de Computação
dc.rightsAttribution 3.0 Brazilen
dc.rights.urihttp://creativecommons.org/licenses/by/3.0/br/
dc.subjectDelay-and-Sum
dc.subjectRISC-V
dc.subjectParallel Computing
dc.subjectCode Optimization
dc.subjectOpenMP
dc.subjectEmbedded Systems
dc.titleOptimization and Parallelization of a Delay-and-Sum Ultrasound Algorithm on a StarFive VisionFive RISC-V board
dc.typebachelorThesis

Arquivos

Pacote Original

Agora exibindo 1 - 1 de 1
Nenhuma Miniatura disponível
Nome:
Optimization and Parallelization of a Delay-and-sum Ultrasound Algorithm on a StarFive VisionFive RISC-V Board.pdf
Tamanho:
912.39 KB
Formato:
Adobe Portable Document Format
Nenhuma Miniatura disponível
Baixar

Licença do Pacote

Agora exibindo 1 - 1 de 1
Nenhuma Miniatura disponível
Nome:
license.txt
Tamanho:
1.53 KB
Formato:
Item-specific license agreed upon to submission
Nenhuma Miniatura disponível
Baixar