128 research outputs found
Analysis and comparison of different approaches to implementing a network-based parallel data processing algorithm
It is well known that network-based parallel data processing algorithms are well suited to implementation in reconfigurable hardware recurring to either Field-Programmable Gate Arrays (FPGA) or Programmable Systems-on-Chip (PSoC). The intrinsic parallelism of these devices makes it possible to execute several data-independent network operations in parallel. However, the approaches to designing the respective systems vary significantly with the experience and background of the engineer in charge. In this paper, we analyze and compare the pros and cons of using an embedded processor, high-level synthesis methods, and register-transfer low-level design in terms of design effort, performance, and power consumption for implementing a parallel algorithm to find the two smallest values in a dataset. This problem is easy to formulate, has a number of practical applications (for instance, in low-density parity check decoders), and is very well suited to parallel implementation based on comparator networks.publishe
Intelligent systems engineering with reconfigurable computing
Intelligent computing systems comprising microprocessor cores, memory and reconfigurable user-programmable logic represent a promising technology which is well-suited for applications such as digital signal and image processing, cryptography and encryption, etc. These applications employ frequently recursive algorithms which are particularly appropriate when the underlying problem is defined in recursive terms and it is difficult to reformulate it as an iterative procedure. It is known, however, that hardware description languages (such as VHDL) as well as system-level specification languages (such as Handel-C) that are usually employed for specifying the required functionality of reconfigurable systems do not provide a direct support for recursion. In this paper a method allowing recursive algorithms to be easily described in Handel-C and implemented in an FPGA (field-programmable gate array) is proposed. The recursive search algorithm for the knapsack problem is considered as an exampleApplications in Artificial Intelligence - Knowledge EngineeringRed de Universidades con Carreras en Informática (RedUNCI
A survey of network-based hardware accelerators
Many practical data-processing algorithms fail to execute efficiently on general-purpose CPUs (Central Processing Units) due to the sequential matter of their operations and memory bandwidth limitations. To achieve desired performance levels, reconfigurable (FPGA (Field-Programmable Gate Array)-based) hardware accelerators are frequently explored that permit the processing units’ architectures to be better adapted to the specific problem/algorithm requirements. In particular, network-based data-processing algorithms are very well suited to implementation in reconfigurable hardware because several data-independent operations can easily and naturally be executed in parallel over as many processing blocks as actually required and technically possible. GPUs (Graphics Processing Units) have also demonstrated good results in this area but they tend to use significantly more power than FPGA, which could be a limiting factor in embedded applications. Moreover, GPUs employ a Single Instruction, Multiple Threads (SIMT) execution model and are therefore optimized to SIMD (Single Instruction, Multiple Data) operations, while in FPGAs fully custom datapaths can be built, eliminating much of the control overhead. This review paper aims to analyze, compare, and discuss different approaches to implementing network-based hardware accelerators in FPGA and programmable SoC (Systems-on-Chip). The performed analysis and the derived recommendations would be useful to hardware designers of future network-based hardware accelerators.publishe
Evolutionary algorithm for state encoding
This paper presents an encoding technique that is common for many different logic synthesis problems. It enables us to construct a system of Boolean functions, and then to decompose this system into sub-systems in such a way that a dependency of functions, included into each sub-system, on the respective arguments is reduced. For complex applications such type of encoding has a high computational complexity and the paper proposes a novel evolutionary algorithm for the solution of this problemIFIP International Conference on Artificial Intelligence in Theory and Practice - Evolutionary ComputationRed de Universidades con Carreras en Informática (RedUNCI
Arquitecturas reconfiguráveis para problemas de optimização combinatória
Os problemas combinatórios têm uma gama extremamente ampla de
aplicações numa variedade de áreas de engenharia, incluindo teste de
circuitos electrónicos, reconhecimento de padrões, síntese lógica, etc. Muitos
dos problemas de interesse pertencem às classes NP-hard e NP-complete, o
que implica que os algoritmos relevantes têm no pior caso complexidade
exponencial. Este facto impede a solução de muitos problemas práticos com a
ajuda de computadores convencionais. As implementações em circuitos
integrados específicos também não são viáveis, em particular por causa da
própria heterogeneidade dos problemas combinatórios. Uma solução
alternativa consiste no uso de dispositivos reconfiguráveis que podem ser
personalizados para um algoritmo específico e reutilizados para outros
algoritmos via uma simples reprogramação da sua estrutura interna. As
implementações baseadas em hardware reconfigurável permitem optimizar a
execução dos algoritmos relevantes com a ajuda de técnicas tais como
processamento paralelo, unidades funcionais personalizadas, etc. Tais
implementações possibilitam conter o efeito de crescimento exponencial do
tempo de computação, permitindo deste modo a solução de problemas
combinatórios complexos.
Recentemente foram desenvolvidos vários sistemas reconfiguráveis
destinados a resolver problemas combinatórios. Estes são principalmente
baseados na ideia de hardware específico para a instância, em que para cada
instância do problema é gerado um circuito particular. Nesta tese exploramos
duas abordagens alternativas. A primeira é orientada para o domínio e permite
processar uma variedade de problemas da área da computação combinatória.
Para tal é projectado e implementado um processador combinatório
reconfigurável e são desenvolvidos métodos e ferramentas que asseguram a
sua reconfiguração dinâmica parcial. A segunda abordagem é orientada para a
aplicação e é destinada a resolver um problema combinatório específico. Em
particular, é proposta uma arquitectura inovadora para a solução do problema
de satisfação booleana com a ajuda de uma combinação de software e de
hardware reconfigurável. A técnica adoptada elimina a compilação de
hardware específica à instância e permite processar problemas que excedem
os recursos lógicos disponíveis. São também exploradas as possibilidades de
implementação em hardware reconfigurável de estratégias evolutivas para o
caso do problema do caixeiro viajante.
Esta tese estende o domínio de aplicação da computação reconfigurável ao
demonstrar que esta é capaz de acelerar algoritmos com fluxos de controlo
complexos.Combinatorial problems have an extremely wide range of practical applications
in a variety of engineering areas, including the testing of electronic circuits,
pattern recognition, logic synthesis, etc. Many of the problems of interest
belong to the classes NP-hard and NP-complete, which implies that the
relevant algorithms have an exponential worst-case complexity. This fact
precludes the solution of many practical problems with conventional
computers. ASIC-based implementations are also not viable, in particular
because of the inherent heterogeneity of combinatorial problems.
Reconfigurable devices offer an alternative solution, which can be customized
to the requirements of a specific algorithm and reutilized for other algorithms
via a simple reprogramming of their internal structure. Implementations based
on reconfigurable hardware permit the execution of the relevant algorithms to
be optimized with the aid of such techniques as parallel processing,
personalized functional units, etc. Such implementations allow the effect of
exponential growth in the computation time to be delayed, thus enabling more
complex problem instances to be solved.
Recently, a few reconfigurable engines for combinatorial problems have been
developed. They are mainly based on the idea of instance-specific hardware,
which assumes that a particular circuit is generated for each problem instance.
In this thesis we explore two alternative approaches. The first, domain-specific,
approach enables a variety of problems in the area of combinatorial
computation to be addressed. For this purpose, a reconfigurable combinatorial
processor has been designed and implemented and a number of methods and
tools that support its partial dynamic reconfiguration have been developed. The
second, application-specific, approach is oriented towards solving individual
combinatorial problems. In particular, a novel architecture is proposed for
solving the Boolean satisfiability problem with the aid of software and
reconfigurable hardware. The adopted technique avoids instance-specific
hardware compilation and permits problems that exceed the available logic
resources to be solved. The possibility of implementing evolutionary strategies
for the traveling salesman problem in reconfigurable hardware is also explored.
This thesis extends the application domain of reconfigurable computing by
demonstrating that it is effective in accelerating algorithms with complex control
flows
Intelligent systems engineering with reconfigurable computing
Intelligent computing systems comprising microprocessor cores, memory and reconfigurable user-programmable logic represent a promising technology which is well-suited for applications such as digital signal and image processing, cryptography and encryption, etc. These applications employ frequently recursive algorithms which are particularly appropriate when the underlying problem is defined in recursive terms and it is difficult to reformulate it as an iterative procedure. It is known, however, that hardware description languages (such as VHDL) as well as system-level specification languages (such as Handel-C) that are usually employed for specifying the required functionality of reconfigurable systems do not provide a direct support for recursion. In this paper a method allowing recursive algorithms to be easily described in Handel-C and implemented in an FPGA (field-programmable gate array) is proposed. The recursive search algorithm for the knapsack problem is considered as an exampleApplications in Artificial Intelligence - Knowledge EngineeringRed de Universidades con Carreras en Informática (RedUNCI
Enriching traditional higher STEM education with online teaching and learning practices: students’ perspective
In this paper, we aim to identify online teaching and learning practices that would be beneficial for blended and traditional on-campus education within STEM (Science, Technology, Engineering, and Mathematics) courses. Our university, as well as the majority of higher education institutions worldwide, has had few to no experience in delivering full online courses before 2020. The teaching process was, however, severely affected and modified by the COVID-19 pandemic, forcing an abrupt and unprepared shift towards online education. In this work, we look at the pandemic as causing a very favorable side effect that forced the university to study, test, apply, and evaluate the benefits and drawbacks of online education and assessment methods. The study is a result of joint efforts from different departments at the University of Aveiro, Portugal, connected to STEM undergraduate and graduate programs and is based on a questionnaire targeted towards students. In total, 167 valid STEM students’ answers have been collected and analyzed, both quantitatively and qualitatively. As the result, the best teaching and learning practices are identified and the main difficulties and obstacles experienced by students are detected. Some of the problems are common to many higher education institutions, such as the lack of teacher preparation in delivering quality online synchronous and asynchronous classes, technical limitations (network bandwidth/weak equipment), ineffective communication during synchronous classes, gaps in student skills, and low activity of some students and even teachers. We believe that the presented results would allow for improving future on-campus, distance, and blended learning courses, particularly through avoiding less effective teaching and assessment methods and favoring those techniques that students consider more efficient. This ultimately would lead to a more rewarding teaching/learning experience.publishe
- …