Beispiel #1
0
def main():

    num_qpus, unroll_shift, code_offset = map(int, sys.argv[1:])

    for insn in assemble(qpu_stbmv, num_qpus=num_qpus,
                         unroll_shift=unroll_shift, code_offset=code_offset):
        print(f'UINT64_C({insn:#018x}),')
Beispiel #2
0
def main():

    num_qpus, code_offset = map(int, sys.argv[1:])

    for insn in assemble(qpu_sgemm_rnn, num_qpus=num_qpus,
                         code_offset=code_offset):
        print(f'UINT64_C({insn:#018x}),')
Beispiel #3
0
def main():

    num_qpus, unroll, code_offset = map(int, sys.argv[1:])

    for insn in assemble(qpu_somatcopy_n,
                         num_qpus=num_qpus,
                         unroll=unroll,
                         code_offset=code_offset):
        print(f'UINT64_C({insn:#018x}),')
Beispiel #4
0
def main():

    if len(sys.argv) == 1:
        benchmark()
        return

    num_qpus, tile_rows, tile_cols, subtile_rows, subtile_cols, code_offset \
        = map(int, sys.argv[1:])

    for insn in assemble(qpu_comatcopy_t,
                         num_qpus=num_qpus,
                         tile_rows=tile_rows,
                         tile_cols=tile_cols,
                         subtile_rows=subtile_rows,
                         subtile_cols=subtile_cols,
                         code_offset=code_offset):
        print(f'UINT64_C({insn:#018x}),')
Beispiel #5
0
    def program(self, prog, *args, **kwargs):

        asm = assemble(prog, *args, **kwargs)

        offset = self.code_pos
        code = Array(
            shape=len(asm),
            dtype=np.uint64,
            phyaddr=self.memory.phyaddr + offset,
            buffer=self.memory.buffer,
            offset=offset,
        )

        self.code_pos += code.nbytes
        if self.code_pos > self.code_area_base + self.code_area_size:
            raise DriverError('Code too large')

        code[:] = asm

        return code
Beispiel #6
0
 def dump_program(self, prog, *args, file=sys.stdout, **kwargs):
     self.dump_code(assemble(prog, *args, **kwargs), file=file)
Beispiel #7
0
def main():

    num_qpus, do_unroll = map(int, sys.argv[1:])

    for insn in assemble(qpu_fft2, num_qpus=num_qpus, do_unroll=do_unroll):
        print(f'UINT64_C({insn:#018x}),')
Beispiel #8
0
def main():

    num_qpus, is_forward = map(int, sys.argv[1:])

    for insn in assemble(qpu_fft4, num_qpus=num_qpus, is_forward=is_forward):
        print(f'UINT64_C({insn:#018x}),')