2

SEモードでgem5を使用してOpenBLAS関数を呼び出すプログラムをシミュレートする必要があるプログラムに取り組んでいます。私のコード(C)は以下の通りです

#include <cblas.h>
#include <stdio.h>

void main()
{
  int i=0;
  double A[6] = {1.0,2.0,1.0,-3.0,4.0,-1.0};
  double B[6] = {1.0,2.0,1.0,-3.0,4.0,-1.0};
  double C[9] = {.5,.5,.5,.5,.5,.5,.5,.5,.5};
  cblas_dgemm(CblasColMajor, CblasNoTrans, CblasTrans,3,3,2,1,A, 3, B, 3,2,C,3);

  for(i=0; i<9; i++)
    printf("%lf ", C[i]);
  printf("\n");
  printf("hello hihi\n");
}

これは OpenBLAS の例です。次のmakefileコマンドでこのファイルを静的にコンパイルしたと確信しています

test_cblas_dgemm: test_cblas_dgemm.c
        @echo compiling $@
        @gcc -static -I $(INCLUDE) -L.  $< -o test_cblas_dgemm -lopenblas
        @cp test_cblas_dgemm ~/progs/

問題は、ubuntu マシンで実行可能ファイルを実行できることですが、gem5 SE モードで致命的なエラーが発生します。シミュレーション出力は次のようになります

**** REAL SIMULATION ****
info: Entering event queue @ 0.  Starting simulation...
warn: readlink() called on '/proc/self/exe' may yield unexpected results in various settings.
      Returning '/home/hurui/progs/test_cblas_dgemm'
info: Increasing stack size by one page.
warn: ignoring syscall access(...)
fatal: syscall mbind (#237) unimplemented.
Memory Usage: 648616 KBytes

誰でも私を助けることができますか?ありがとう。

4

2 に答える 2