Skip to content

Commit 4408e6a

Browse files
author
Nicolas Vasilache
committed
[mlir][test] NFC - Rename cblas to mlir_test_cblas
The "cblas" lib under mlir/test is meant as a simple integration demonstration. However it is installed and ends up conflicting with external projects who want to define the real cblas. Rename to avoid conflicts. Differential revision: https://reviews.llvm.org/D76615
1 parent e634f48 commit 4408e6a

File tree

9 files changed

+121
-105
lines changed

9 files changed

+121
-105
lines changed

mlir/test/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ set(MLIR_TEST_DEPENDS
3939
mlir-sdbm-api-test
4040
mlir-tblgen
4141
mlir-translate
42-
cblas
43-
cblas_interface
42+
mlir_test_cblas
43+
mlir_test_cblas_interface
4444
mlir_runner_utils
4545
mlir_c_runner_utils
4646
)
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
set(LLVM_OPTIONAL_SOURCES
2-
cblas.cpp
3-
cblas_interface.cpp
2+
mlir_test_cblas.cpp
3+
mlir_test_cblas_interface.cpp
44
)
55

6-
add_llvm_library(cblas SHARED cblas.cpp)
7-
target_compile_definitions(cblas PRIVATE cblas_EXPORTS)
6+
add_llvm_library(mlir_test_cblas SHARED mlir_test_cblas.cpp)
7+
target_compile_definitions(mlir_test_cblas PRIVATE mlir_test_cblas_EXPORTS)
88

9-
add_llvm_library(cblas_interface SHARED cblas_interface.cpp)
10-
target_link_libraries(cblas_interface PRIVATE cblas)
11-
target_compile_definitions(cblas_interface PRIVATE cblas_interface_EXPORTS)
9+
add_llvm_library(mlir_test_cblas_interface SHARED mlir_test_cblas_interface.cpp)
10+
target_link_libraries(mlir_test_cblas_interface PRIVATE mlir_test_cblas)
11+
target_compile_definitions(mlir_test_cblas_interface PRIVATE mlir_test_cblas_interface_EXPORTS)
1212

mlir/test/mlir-cpu-runner/include/cblas.h

Lines changed: 0 additions & 49 deletions
This file was deleted.
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
//===- mlir_test_cblas.h - Simple Blas subset -----------------------------===//
2+
//
3+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4+
// See https://llvm.org/LICENSE.txt for license information.
5+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6+
//
7+
//===----------------------------------------------------------------------===//
8+
#ifndef MLIR_CPU_RUNNER_MLIR_TEST_CBLAS_H_
9+
#define MLIR_CPU_RUNNER_MLIR_TEST_CBLAS_H_
10+
11+
#include "mlir/ExecutionEngine/RunnerUtils.h"
12+
13+
#ifdef _WIN32
14+
#ifndef MLIR_TEST_CBLAS_EXPORT
15+
#ifdef mlir_test_cblas_EXPORTS
16+
/* We are building this library */
17+
#define MLIR_TEST_CBLAS_EXPORT __declspec(dllexport)
18+
#else
19+
/* We are using this library */
20+
#define MLIR_TEST_CBLAS_EXPORT __declspec(dllimport)
21+
#endif // mlir_test_cblas_EXPORTS
22+
#endif // MLIR_TEST_CBLAS_EXPORT
23+
#else
24+
#define MLIR_TEST_CBLAS_EXPORT
25+
#endif // _WIN32
26+
27+
/// This reproduces a minimal subset of mlir_test_cblas to allow integration
28+
/// testing without explicitly requiring a dependence on an external library.
29+
/// Without loss of generality, various mlir_test_cblas implementations may be
30+
/// swapped in by including the proper headers and linking with the proper
31+
/// library.
32+
enum CBLAS_ORDER { CblasRowMajor = 101, CblasColMajor = 102 };
33+
enum CBLAS_TRANSPOSE {
34+
CblasNoTrans = 111,
35+
CblasTrans = 112,
36+
CblasConjTrans = 113
37+
};
38+
39+
extern "C" MLIR_TEST_CBLAS_EXPORT float
40+
mlir_test_cblas_sdot(const int N, const float *X, const int incX,
41+
const float *Y, const int incY);
42+
43+
extern "C" MLIR_TEST_CBLAS_EXPORT void mlir_test_cblas_sgemm(
44+
const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
45+
const enum CBLAS_TRANSPOSE TransB, const int M, const int N, const int K,
46+
const float alpha, const float *A, const int lda, const float *B,
47+
const int ldb, const float beta, float *C, const int ldc);
48+
49+
#endif // MLIR_CPU_RUNNER_MLIR_TEST_CBLAS_H_
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,59 @@
1-
//===- cblas_interface.h - Simple Blas subset interface -------------------===//
1+
//===- mlir_test_cblas_interface.h - Simple Blas subset interface ---------===//
22
//
33
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
44
// See https://llvm.org/LICENSE.txt for license information.
55
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
66
//
77
//===----------------------------------------------------------------------===//
8-
#ifndef MLIR_CPU_RUNNER_CBLAS_INTERFACE_H_
9-
#define MLIR_CPU_RUNNER_CBLAS_INTERFACE_H_
8+
#ifndef MLIR_CPU_RUNNER_MLIR_TEST_CBLAS_INTERFACE_H_
9+
#define MLIR_CPU_RUNNER_MLIR_TEST_CBLAS_INTERFACE_H_
1010

1111
#include "mlir/ExecutionEngine/RunnerUtils.h"
1212

1313
#ifdef _WIN32
14-
#ifndef MLIR_CBLAS_INTERFACE_EXPORT
15-
#ifdef cblas_interface_EXPORTS
14+
#ifndef MLIR_TEST_CBLAS_INTERFACE_EXPORT
15+
#ifdef mlir_test_cblas_interface_EXPORTS
1616
/* We are building this library */
17-
#define MLIR_CBLAS_INTERFACE_EXPORT __declspec(dllexport)
17+
#define MLIR_TEST_CBLAS_INTERFACE_EXPORT __declspec(dllexport)
1818
#else
1919
/* We are using this library */
20-
#define MLIR_CBLAS_INTERFACE_EXPORT __declspec(dllimport)
21-
#endif // cblas_interface_EXPORTS
22-
#endif // MLIR_CBLAS_INTERFACE_EXPORT
20+
#define MLIR_TEST_CBLAS_INTERFACE_EXPORT __declspec(dllimport)
21+
#endif // mlir_test_cblas_interface_EXPORTS
22+
#endif // MLIR_TEST_CBLAS_INTERFACE_EXPORT
2323
#else
24-
#define MLIR_CBLAS_INTERFACE_EXPORT
24+
#define MLIR_TEST_CBLAS_INTERFACE_EXPORT
2525
#endif // _WIN32
2626

27-
extern "C" MLIR_CBLAS_INTERFACE_EXPORT void
27+
extern "C" MLIR_TEST_CBLAS_INTERFACE_EXPORT void
2828
_mlir_ciface_linalg_fill_viewf32_f32(StridedMemRefType<float, 0> *X, float f);
2929

30-
extern "C" MLIR_CBLAS_INTERFACE_EXPORT void
30+
extern "C" MLIR_TEST_CBLAS_INTERFACE_EXPORT void
3131
_mlir_ciface_linalg_fill_viewsxf32_f32(StridedMemRefType<float, 1> *X, float f);
3232

33-
extern "C" MLIR_CBLAS_INTERFACE_EXPORT void
33+
extern "C" MLIR_TEST_CBLAS_INTERFACE_EXPORT void
3434
_mlir_ciface_linalg_fill_viewsxsxf32_f32(StridedMemRefType<float, 2> *X,
3535
float f);
3636

37-
extern "C" MLIR_CBLAS_INTERFACE_EXPORT void
37+
extern "C" MLIR_TEST_CBLAS_INTERFACE_EXPORT void
3838
_mlir_ciface_linalg_copy_viewf32_viewf32(StridedMemRefType<float, 0> *I,
3939
StridedMemRefType<float, 0> *O);
4040

41-
extern "C" MLIR_CBLAS_INTERFACE_EXPORT void
41+
extern "C" MLIR_TEST_CBLAS_INTERFACE_EXPORT void
4242
_mlir_ciface_linalg_copy_viewsxf32_viewsxf32(StridedMemRefType<float, 1> *I,
4343
StridedMemRefType<float, 1> *O);
4444

45-
extern "C" MLIR_CBLAS_INTERFACE_EXPORT void
45+
extern "C" MLIR_TEST_CBLAS_INTERFACE_EXPORT void
4646
_mlir_ciface_linalg_copy_viewsxsxf32_viewsxsxf32(
4747
StridedMemRefType<float, 2> *I, StridedMemRefType<float, 2> *O);
4848

49-
extern "C" MLIR_CBLAS_INTERFACE_EXPORT void
49+
extern "C" MLIR_TEST_CBLAS_INTERFACE_EXPORT void
5050
_mlir_ciface_linalg_dot_viewsxf32_viewsxf32_viewf32(
5151
StridedMemRefType<float, 1> *X, StridedMemRefType<float, 1> *Y,
5252
StridedMemRefType<float, 0> *Z);
5353

54-
extern "C" MLIR_CBLAS_INTERFACE_EXPORT void
54+
extern "C" MLIR_TEST_CBLAS_INTERFACE_EXPORT void
5555
_mlir_ciface_linalg_matmul_viewsxsxf32_viewsxsxf32_viewsxsxf32(
5656
StridedMemRefType<float, 2> *A, StridedMemRefType<float, 2> *B,
5757
StridedMemRefType<float, 2> *C);
5858

59-
#endif // MLIR_CPU_RUNNER_CBLAS_INTERFACE_H_
59+
#endif // MLIR_CPU_RUNNER_MLIR_TEST_CBLAS_INTERFACE_H_

mlir/test/mlir-cpu-runner/linalg_integration_test.mlir

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,26 @@
1-
// RUN: mlir-opt %s -convert-linalg-to-llvm | mlir-cpu-runner -e dot -entry-point-result=f32 -shared-libs=%linalg_test_lib_dir/libcblas%shlibext,%linalg_test_lib_dir/libcblas_interface%shlibext | FileCheck %s
2-
// RUN: mlir-opt %s -convert-linalg-to-loops -convert-linalg-to-llvm | mlir-cpu-runner -e dot -entry-point-result=f32 -shared-libs=%linalg_test_lib_dir/libcblas%shlibext,%linalg_test_lib_dir/libcblas_interface%shlibext | FileCheck %s
3-
// RUN: mlir-opt %s -convert-linalg-to-llvm | mlir-cpu-runner -e matmul -entry-point-result=f32 -shared-libs=%linalg_test_lib_dir/libcblas%shlibext,%linalg_test_lib_dir/libcblas_interface%shlibext | FileCheck %s
4-
// RUN: mlir-opt %s -convert-linalg-to-loops -convert-linalg-to-llvm | mlir-cpu-runner -e matmul -entry-point-result=f32 -shared-libs=%linalg_test_lib_dir/libcblas%shlibext,%linalg_test_lib_dir/libcblas_interface%shlibext | FileCheck %s
5-
// RUN: mlir-opt %s -linalg-tile="linalg-tile-sizes=2,3,4" -linalg-promote-subviews -convert-linalg-to-loops -convert-linalg-to-llvm | mlir-cpu-runner -e matmul -entry-point-result=f32 -shared-libs=%linalg_test_lib_dir/libcblas%shlibext,%linalg_test_lib_dir/libcblas_interface%shlibext | FileCheck %s
6-
// RUN: mlir-opt %s -linalg-tile="linalg-tile-sizes=2,3,4" -linalg-promote-subviews -convert-linalg-to-llvm | mlir-cpu-runner -e matmul -entry-point-result=f32 -shared-libs=%linalg_test_lib_dir/libcblas%shlibext,%linalg_test_lib_dir/libcblas_interface%shlibext | FileCheck %s
1+
// RUN: mlir-opt %s -convert-linalg-to-llvm \
2+
// RUN: | mlir-cpu-runner -e dot -entry-point-result=f32 -shared-libs=%linalg_test_lib_dir/libmlir_test_cblas%shlibext,%linalg_test_lib_dir/libmlir_test_cblas_interface%shlibext \
3+
// RUN: | FileCheck %s
4+
5+
// RUN: mlir-opt %s -convert-linalg-to-loops -convert-linalg-to-llvm \
6+
// RUN: | mlir-cpu-runner -e dot -entry-point-result=f32 -shared-libs=%linalg_test_lib_dir/libmlir_test_cblas%shlibext,%linalg_test_lib_dir/libmlir_test_cblas_interface%shlibext \
7+
// RUN: | FileCheck %s
8+
9+
// RUN: mlir-opt %s -convert-linalg-to-llvm \
10+
// RUN: | mlir-cpu-runner -e matmul -entry-point-result=f32 -shared-libs=%linalg_test_lib_dir/libmlir_test_cblas%shlibext,%linalg_test_lib_dir/libmlir_test_cblas_interface%shlibext \
11+
// RUN: | FileCheck %s
12+
13+
// RUN: mlir-opt %s -convert-linalg-to-loops -convert-linalg-to-llvm \
14+
// RUN: | mlir-cpu-runner -e matmul -entry-point-result=f32 -shared-libs=%linalg_test_lib_dir/libmlir_test_cblas%shlibext,%linalg_test_lib_dir/libmlir_test_cblas_interface%shlibext \
15+
// RUN: | FileCheck %s
16+
17+
// RUN: mlir-opt %s -linalg-tile="linalg-tile-sizes=2,3,4" -linalg-promote-subviews -convert-linalg-to-loops -convert-linalg-to-llvm \
18+
// RUN: | mlir-cpu-runner -e matmul -entry-point-result=f32 -shared-libs=%linalg_test_lib_dir/libmlir_test_cblas%shlibext,%linalg_test_lib_dir/libmlir_test_cblas_interface%shlibext \
19+
// RUN: | FileCheck %s
20+
21+
// RUN: mlir-opt %s -linalg-tile="linalg-tile-sizes=2,3,4" -linalg-promote-subviews -convert-linalg-to-llvm \
22+
// RUN: | mlir-cpu-runner -e matmul -entry-point-result=f32 -shared-libs=%linalg_test_lib_dir/libmlir_test_cblas%shlibext,%linalg_test_lib_dir/libmlir_test_cblas_interface%shlibext \
23+
// RUN: | FileCheck %s
724

825
#strided1D = affine_map<(d0) -> (d0)>
926
#strided2D = affine_map<(d0, d1)[s0] -> (d0 * s0 + d1)>

mlir/test/mlir-cpu-runner/cblas.cpp renamed to mlir/test/mlir-cpu-runner/mlir_test_cblas.cpp

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//===- cblas.cpp - Simple Blas subset implementation ----------------------===//
1+
//===- mlir_test_cblas.cpp - Simple Blas subset implementation ------------===//
22
//
33
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
44
// See https://llvm.org/LICENSE.txt for license information.
@@ -10,24 +10,23 @@
1010
//
1111
//===----------------------------------------------------------------------===//
1212

13-
#include "include/cblas.h"
13+
#include "include/mlir_test_cblas.h"
1414
#include <assert.h>
1515

16-
extern "C" float cblas_sdot(const int N, const float *X, const int incX,
17-
const float *Y, const int incY) {
16+
extern "C" float mlir_test_cblas_sdot(const int N, const float *X,
17+
const int incX, const float *Y,
18+
const int incY) {
1819
float res = 0.0f;
1920
for (int i = 0; i < N; ++i)
2021
res += X[i * incX] * Y[i * incY];
2122
return res;
2223
}
2324

24-
extern "C" void cblas_sgemm(const enum CBLAS_ORDER Order,
25-
const enum CBLAS_TRANSPOSE TransA,
26-
const enum CBLAS_TRANSPOSE TransB, const int M,
27-
const int N, const int K, const float alpha,
28-
const float *A, const int lda, const float *B,
29-
const int ldb, const float beta, float *C,
30-
const int ldc) {
25+
extern "C" void mlir_test_cblas_sgemm(
26+
const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
27+
const enum CBLAS_TRANSPOSE TransB, const int M, const int N, const int K,
28+
const float alpha, const float *A, const int lda, const float *B,
29+
const int ldb, const float beta, float *C, const int ldc) {
3130
assert(Order == CBLAS_ORDER::CblasRowMajor);
3231
assert(TransA == CBLAS_TRANSPOSE::CblasNoTrans);
3332
assert(TransB == CBLAS_TRANSPOSE::CblasNoTrans);

mlir/test/mlir-cpu-runner/cblas_interface.cpp renamed to mlir/test/mlir-cpu-runner/mlir_test_cblas_interface.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//===- cblas_interface.cpp - Simple Blas subset interface -----------------===//
1+
//===- mlir_test_cblas_interface.cpp - Simple Blas subset interface -------===//
22
//
33
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
44
// See https://llvm.org/LICENSE.txt for license information.
@@ -10,8 +10,8 @@
1010
//
1111
//===----------------------------------------------------------------------===//
1212

13-
#include "include/cblas_interface.h"
14-
#include "include/cblas.h"
13+
#include "include/mlir_test_cblas_interface.h"
14+
#include "include/mlir_test_cblas.h"
1515
#include <assert.h>
1616
#include <iostream>
1717

@@ -82,8 +82,8 @@ extern "C" void _mlir_ciface_linalg_dot_viewsxf32_viewsxf32_viewf32(
8282
return;
8383
}
8484
Z->data[Z->offset] +=
85-
cblas_sdot(X->sizes[0], X->data + X->offset, X->strides[0],
86-
Y->data + Y->offset, Y->strides[0]);
85+
mlir_test_cblas_sdot(X->sizes[0], X->data + X->offset, X->strides[0],
86+
Y->data + Y->offset, Y->strides[0]);
8787
}
8888

8989
extern "C" void _mlir_ciface_linalg_matmul_viewsxsxf32_viewsxsxf32_viewsxsxf32(
@@ -99,9 +99,9 @@ extern "C" void _mlir_ciface_linalg_matmul_viewsxsxf32_viewsxsxf32_viewsxsxf32(
9999
printMemRefMetaData(std::cerr, *C);
100100
return;
101101
}
102-
cblas_sgemm(CBLAS_ORDER::CblasRowMajor, CBLAS_TRANSPOSE::CblasNoTrans,
103-
CBLAS_TRANSPOSE::CblasNoTrans, C->sizes[0], C->sizes[1],
104-
A->sizes[1], 1.0f, A->data + A->offset, A->strides[0],
105-
B->data + B->offset, B->strides[0], 1.0f, C->data + C->offset,
106-
C->strides[0]);
102+
mlir_test_cblas_sgemm(
103+
CBLAS_ORDER::CblasRowMajor, CBLAS_TRANSPOSE::CblasNoTrans,
104+
CBLAS_TRANSPOSE::CblasNoTrans, C->sizes[0], C->sizes[1], A->sizes[1],
105+
1.0f, A->data + A->offset, A->strides[0], B->data + B->offset,
106+
B->strides[0], 1.0f, C->data + C->offset, C->strides[0]);
107107
}

mlir/test/mlir-cpu-runner/unranked_memref.mlir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: mlir-opt %s -convert-linalg-to-loops -convert-linalg-to-llvm -convert-std-to-llvm | mlir-cpu-runner -e main -entry-point-result=void -shared-libs=%linalg_test_lib_dir/libmlir_runner_utils%shlibext,%linalg_test_lib_dir/libcblas%shlibext,%linalg_test_lib_dir/libcblas_interface%shlibext | FileCheck %s
1+
// RUN: mlir-opt %s -convert-linalg-to-loops -convert-linalg-to-llvm -convert-std-to-llvm | mlir-cpu-runner -e main -entry-point-result=void -shared-libs=%linalg_test_lib_dir/libmlir_runner_utils%shlibext,%linalg_test_lib_dir/libmlir_test_cblas%shlibext,%linalg_test_lib_dir/libmlir_test_cblas_interface%shlibext | FileCheck %s
22

33
// CHECK: rank = 2
44
// CHECK: rank = 2

0 commit comments

Comments
 (0)