Sources: siboehm/SGEMM_CUDA → upstream_ref/sgemm_siboehm/ (25 files) wangzyon/NVIDIA_SGEMM_PRACTICE → upstream_ref/nvidia_sgemm_practice/ (23 files, filled gaps) edtallison/sgemm-cuda → upstream_ref/sgemm_edtallison/ (41 files) All files cat'd one by one from git clone (no --depth). These are the 3 public SGEMM repos that can compile on CUDA 10.2 + CoreX ivcore10. Key files for BI-V100 porting: kernel 10 (warp tiling) — already proven on device with WARPSIZE=64 kernel 11/12 (double buffering) — next optimization target sgemm.cu + runner.cu — complete build+benchmark harness CMakeLists.txt — build system reference
37 lines
1.3 KiB
CMake
37 lines
1.3 KiB
CMake
cmake_minimum_required(VERSION 3.0)
|
||
project(NVIDIA_SGEMM_PRACTICE)
|
||
|
||
# gcc/g++编译参数说明:
|
||
# -O1~3编译器优化选项的4个级别,-O1默认,级别越大优化效果越好,但编译时间越长;
|
||
# -std=c++11,采用C++11标准编译
|
||
set(CMAKE_CXX_FLAGS "-O3 -std=c++11")
|
||
|
||
# nvcc编译参数说明:
|
||
# -g:主机代码添加调试信息;
|
||
# -G:设备代码产生调试信息,将会禁用大多数编译器优化,造成设备代码运行缓慢;
|
||
# -Xptxas -dlcm=ca启用L1缓存,-Xptxas -dlcm=cg关闭L1缓存
|
||
|
||
# set(CUDA_NVCC_FLAGS -g;-G;-Xptxas;-dlcm=ca)
|
||
# set(CUDA_NVCC_FLAGS -Xptxas;-dlcm=cg)
|
||
set(CUDA_NVCC_FLAGS -arch=compute_70;-code=compute_70)
|
||
|
||
# 若FIND CUDA ERROR,在~/.bashrc中添加配置环境变量和动态库路径
|
||
# CUDA_HOME=/usr/local/cuda
|
||
# export PATH=$CUDA_HOME/bin:$PATH
|
||
# export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
|
||
find_package(CUDA REQUIRED)
|
||
|
||
# 配置头文件搜索路径
|
||
include_directories(${CUDA_INCLUDE_DIRS})
|
||
include_directories(${PROJECT_SOURCE_DIR}/src)
|
||
# 配置待编译的源文件路径
|
||
aux_source_directory(${PROJECT_SOURCE_DIR}/src SRC)
|
||
# 可执行文件输出路径
|
||
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR})
|
||
# 生成可执行文件
|
||
CUDA_ADD_EXECUTABLE(sgemm sgemm.cu ${SRC})
|
||
|
||
# link cudart cublas
|
||
target_link_libraries(sgemm ${CUDA_LIBRARIES} ${CUDA_cublas_LIBRARY})
|
||
|