GENERATING SOURCE CODE ADAPTED FOR IMPLEMENTATION ON FPGAS

    公开(公告)号:US20240311112A1

    公开(公告)日:2024-09-19

    申请号:US18185413

    申请日:2023-03-17

    申请人: dSPACE GmbH

    IPC分类号: G06F8/41

    CPC分类号: G06F8/456 G06F8/4441

    摘要: A method for generating source code includes: transforming a block diagram into an intermediate representation, wherein transforming the block diagram into the intermediate representation comprises transforming at least two blocks, wherein at least one loop results from transforming an operation block; identifying at least one candidate loop in the intermediate representation, wherein a loop body of a candidate loop comprises at least one instruction that accesses the array variable; identifying at least one parallelizable loop from the at least one candidate loop; determining build options for the at least one parallelizable loop and the array variable; inserting build pragmas based on the determined build options in the intermediate representation; and translating the intermediate representation into the source code.

    Loop unrolling processing apparatus, method, and program

    公开(公告)号:US12093691B2

    公开(公告)日:2024-09-17

    申请号:US17795952

    申请日:2020-02-14

    申请人: NEC Corporation

    发明人: Yoshiyuki Ohno

    摘要: A generation unit generates arithmetic expressions. Here, N denotes the number of looping times of the loop processing. L denotes a designated lower limit of unroll stage number. M denotes a designated upper limit of the unroll stage number. Q denotes a quotient obtained by dividing N by L. R denotes a remainder obtained by dividing N by L. The arithmetic expressions include an arithmetic expression that represents executing loop processing whose number of looping times is a quotient obtained by dividing R by (M−L), with the unroll stage number M when R−Q*(M−L)>0 is not satisfied, and then executing, when a remainder obtained by dividing R by (M−L) is other than 0, processing of one loop with sum of the remainder and L as the unroll stage number, and then executing loop processing with the unroll stage number L.

    PROGRAM COMPILATION METHOD AND APPARATUS
    5.
    发明公开

    公开(公告)号:US20240201968A1

    公开(公告)日:2024-06-20

    申请号:US18407383

    申请日:2024-01-08

    IPC分类号: G06F8/41

    CPC分类号: G06F8/4441

    摘要: This application discloses a program compilation method including: obtaining a first program, where the first program includes a plurality of layers of loop statements, a loop condition of each layer of loop statement in the plurality of layers of loop statements includes a variable and a value interval of the variable, and a loop body of the plurality of layers of loop statements includes at least one conditional statement; processing a value interval of a first variable in a first loop statement included in the plurality of layers of loop statements, to obtain a second loop statement; and compiling the first program based on at least one loop statement to obtain a compilation result of the first program.

    AUTOMATICALLY REPLACING CODE IN PROGRAM THAT MANIPULATES TWO VECTORS OF DATA TO IMPROVE EXECUTION TIME

    公开(公告)号:US20240094999A1

    公开(公告)日:2024-03-21

    申请号:US17948425

    申请日:2022-09-20

    发明人: Kazuaki Ishizaki

    IPC分类号: G06F8/41 G06F9/38

    CPC分类号: G06F8/4441 G06F9/3887

    摘要: A computer-implemented method, system and computer program product for improving the performance of a program that manipulates two vectors of data. It is determined whether the program contains one of the following patterns: a first pattern corresponding to v0.rearrange(s, v1); a second pattern corresponding to v0.blend(v1, m); and a third pattern corresponding to v0.rearrange(s).blend(v1.rearrange(s), m). Upon identifying code written as the first pattern in the program, the first pattern is rewritten and replaced with the second or third pattern if the execution time of the program with the second or third pattern is less than the execution time of the program with the first program. In a similar manner, upon identifying code written as the second or third pattern in the program, the second or third pattern is rewritten and replaced with the first pattern if the execution time of the program can be improved.