Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
3cdedb1
version for develop branch release
amcamd Aug 7, 2019
5b7a665
Merge pull request #640 from amcamd/develop
amcamd Aug 8, 2019
3dc3d65
Updating CMake to support changes in Tensile (#639)
sdquiring Aug 8, 2019
2766bf8
added zlib package to install script and dockerfiles (#642)
amdkila Aug 9, 2019
8b8defc
add tuned logic files for resnet and inception sizes
Aug 9, 2019
c089d74
complex gemm implementation
TonyYHsieh Aug 9, 2019
5ecd412
Adding missing packages to rocBLAS cmake files, dockerfiles, and inst…
amdkila Aug 12, 2019
2f2edca
Added CentOS Vega 10 and Vega 20 jobs (#647)
amdkila Aug 12, 2019
ce067bb
Merge pull request #643 from TonyYHsieh/complex_gemm_based_on_PR642
imcarsonliao Aug 13, 2019
3fd5a4a
Add cgemm asm lite logic yaml
jichangjichang Aug 13, 2019
bfd4ed7
Merge pull request #644 from wbgilmartin/resnet-inception-logic
wbgilmartin Aug 13, 2019
c0dfa3f
Remove \0s from xargs input, to avoid corrupted characters (#620)
leekillough Aug 15, 2019
ce9110e
Pinning Tensile version to allow for stable Jenkins runs
saadrahim Aug 16, 2019
8d41c1e
Client packaging (#602)
saadrahim Aug 16, 2019
dfb9b2d
Merge pull request #656 from saadrahim/pinTensile
saadrahim Aug 16, 2019
938905b
Add gemv_batched and gemv_strided_batched unit tests (#645)
jzuniga-amd Aug 17, 2019
bae39cc
Updating to new Tensile cmake (#660)
saadrahim Aug 20, 2019
a6c36ff
change from tensile_branch to tensile_tag to match CMakeLista.txt (#663)
amcamd Aug 20, 2019
f1b6bb4
Adding packages accidentally removed (#662)
saadrahim Aug 21, 2019
38b2d4c
arcturus sync1 with vega20 commit 8b8defc1
zaliu Aug 21, 2019
5ba3f42
Merge pull request #666 from zaliu/arcturus_sync1
zaliu Aug 21, 2019
73a01cf
fp16 and bfloat16 precision for dot (#655)
daineAMD Aug 22, 2019
402d231
Switch to using separate D for gemm_ex benchmark calls (#667)
yoichiyoshida Aug 22, 2019
b548b68
Adding Jenkins job to test Tensile Develop latest (#668)
saadrahim Aug 23, 2019
aca403d
reduce the number of tests (#673)
leekillough Aug 26, 2019
f029524
Using Blis for test validation (#621)
mahmoodw Aug 26, 2019
f801d49
Changed rocJenkins branch to master in Jenkinsfile (#677)
amdkila Aug 28, 2019
a9ecc72
Rot functions (#658)
AlexBrownAMD Aug 29, 2019
253fbf6
Fix rocblas_bfloat16 conversions and add a __device__ __host__ rocbla…
leekillough Aug 31, 2019
a763f41
update logic file for new sizes
Sep 3, 2019
ee6a16e
Updating Tensile Tag (#672)
saadrahim Sep 4, 2019
1c85e9e
Merge pull request #680 from wbgilmartin/winograd_dlrm_logic
wbgilmartin Sep 4, 2019
94f60f9
Adding flag to install script to choose cpu lib (#675)
mahmoodw Sep 4, 2019
0277d9e
Fix header file checks to not depend on hardcoded paths (#681)
leekillough Sep 5, 2019
0c0cc12
Fixing the install script to throw errors correctly. (#682)
saadrahim Sep 5, 2019
ed7a513
Merge pull request #649 from jichangjichang/develop_cgemm_asm_yaml
imcarsonliao Sep 6, 2019
5612f3a
update logic using flex batch tuning
Sep 6, 2019
47b5d45
Addition of ger batched and strided batched functions (#674)
mahmoodw Sep 9, 2019
85e8a5f
update massage.py and remasage updated logic
Sep 9, 2019
176c728
Add support for Vega 64 (#654)
ekuznetsov139 Sep 10, 2019
5bf1db8
Merge pull request #683 from wbgilmartin/flexbatch_logic_update_1
wbgilmartin Sep 10, 2019
d64e4b7
Updated Tensile tag (#684)
amdkila Sep 10, 2019
0475965
ROCm 2.9 Merge master into develop
amcamd Sep 11, 2019
4ad6177
version for master branch release
amcamd Sep 11, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[submodule "extern/blis"]
path = extern/blis
url = https://github.com/amd/blis.git
branch = 1.3
140 changes: 140 additions & 0 deletions .jenkins/Dependency
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
#!/usr/bin/env groovy
// This shared library is available at https://github.com/ROCmSoftwarePlatform/rocJENKINS/
@Library('rocJenkins') _

// This is file for internal AMD use.
// If you are interested in running your own Jenkins, please raise a github issue for assistance.

import com.amd.project.*
import com.amd.docker.*


////////////////////////////////////////////////////////////////////////
// Mostly generated from snippet generator 'properties; set job properties'
// Time-based triggers added to execute nightly tests, eg '30 2 * * *' means 2:30 AM
properties([
pipelineTriggers([[$class: 'PeriodicFolderTrigger', interval: '1d']]),
buildDiscarder(logRotator(
artifactDaysToKeepStr: '',
artifactNumToKeepStr: '',
daysToKeepStr: '',
numToKeepStr: '10')),
disableConcurrentBuilds(),
[$class: 'CopyArtifactPermissionProperty', projectNames: '*']
])

import java.nio.file.Path;

rocBLASCI:
{

def rocblas = new rocProject('rocBLAS')
// customize for project
rocblas.paths.build_command = './install.sh -lasm_ci -c -b develop'

// Define test architectures, optional rocm version argument is available
def nodes = new dockerNodes(['gfx900 && ubuntu', 'gfx906 && centos7'], rocblas)

boolean formatCheck = true

def compileCommand =
{
platform, project->

project.paths.construct_build_prefix()

def command

if(platform.jenkinsLabel.contains('hip-clang'))
{
command = """#!/usr/bin/env bash
set -x
cd ${project.paths.project_build_prefix}
LD_LIBRARY_PATH=/opt/rocm/hcc/lib CXX=/opt/rocm/bin/hipcc ${project.paths.build_command} --hip-clang
"""
}
else
{
command = """#!/usr/bin/env bash
set -x
cd ${project.paths.project_build_prefix}
LD_LIBRARY_PATH=/opt/rocm/hcc/lib CXX=/opt/rocm/bin/hcc ${project.paths.build_command}
"""
}
platform.runCommand(this, command)
}

def testCommand =
{
platform, project->

def command

if(platform.jenkinsLabel.contains('centos'))
{
command = """#!/usr/bin/env bash
set -x
cd ${project.paths.project_build_prefix}/build/release/clients/staging
LD_LIBRARY_PATH=/opt/rocm/hcc/lib GTEST_LISTENER=NO_PASS_LINE_IN_LOG sudo ./rocblas-test --gtest_output=xml --gtest_color=yes --gtest_filter=*nightly*-*known_bug* #--gtest_filter=*nightly*
"""

platform.runCommand(this, command)
junit "${project.paths.project_build_prefix}/build/release/clients/staging/*.xml"
}
else
{
command = """#!/usr/bin/env bash
set -x
cd ${project.paths.project_build_prefix}/build/release/clients/staging
LD_LIBRARY_PATH=/opt/rocm/hcc/lib GTEST_LISTENER=NO_PASS_LINE_IN_LOG ./rocblas-test --gtest_output=xml --gtest_color=yes --gtest_filter=*nightly*-*known_bug* #--gtest_filter=*nightly*
"""

platform.runCommand(this, command)
junit "${project.paths.project_build_prefix}/build/release/clients/staging/*.xml"
}
}

def packageCommand =
{
platform, project->

def command

if(platform.jenkinsLabel.contains('centos'))
{
command = """
set -x
cd ${project.paths.project_build_prefix}/build/release
make package
mkdir -p package
mv *.rpm package/
rpm -qlp package/*.rpm
"""

platform.runCommand(this, command)
platform.archiveArtifacts(this, """${project.paths.project_build_prefix}/build/release/package/*.rpm""")
}
else if(platform.jenkinsLabel.contains('hip-clang'))
{
packageCommand = null
}
else
{
command = """
set -x
cd ${project.paths.project_build_prefix}/build/release
make package
make package_clients
mkdir -p package
mv *.deb package/
mv clients/*.deb package/
"""

platform.runCommand(this, command)
platform.archiveArtifacts(this, """${project.paths.project_build_prefix}/build/release/package/*.deb""")
}
}

buildProject(rocblas, formatCheck, nodes.dockerArray, compileCommand, testCommand, packageCommand)

}
14 changes: 8 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ cmake_minimum_required( VERSION 3.5 )

# We use C++14 features, this will add compile option: -std=c++14
set( CMAKE_CXX_STANDARD 14 )
# Without this line, it will add -std=gnu++14 instead, which has some issues.
set( CMAKE_CXX_EXTENSIONS OFF )

# Consider removing this in the future
# This should appear before the project command, because it does not use FORCE
Expand All @@ -33,6 +35,9 @@ endif()

project( rocblas LANGUAGES CXX )

set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)

# ########################################################################
# NOTE: CUDA compiling path
# ########################################################################
Expand Down Expand Up @@ -135,7 +140,7 @@ include( ROCMPackageConfigHelpers )
include( ROCMInstallSymlinks )

# Versioning via rocm-cmake
set ( VERSION_STRING "2.6.4" )
set ( VERSION_STRING "2.8.0" )
rocm_setup_version( VERSION ${VERSION_STRING} )

# Append our library helper cmake path and the cmake path for hip (for convenience)
Expand Down Expand Up @@ -171,21 +176,18 @@ if( BUILD_WITH_TENSILE )
set_property( CACHE Tensile_COMPILER PROPERTY STRINGS hcc hipcc)

include(virtualenv)

if (Tensile_TEST_LOCAL_PATH)
virtualenv_install(${Tensile_TEST_LOCAL_PATH})
message (STATUS "using local Tensile from ${Tensile_TEST_LOCAL_PATH}, copied to ${Tensile_ROOT}")
else()
# Use the virtual-env setup and download package from specified repot:
set( tensile_fork "ROCmSoftwarePlatform" CACHE STRING "Tensile fork to use" )
set( tensile_tag 1c58828cafd5f1285bf17b75ad5c04ca6c8fa88c CACHE STRING "Tensile tag to download" )
set( tensile_tag 015477ad8c8ea0ef6f59b8d49a65015b46b8a48e CACHE STRING "Tensile tag to download" )
virtualenv_install("git+https://github.com/${tensile_fork}/Tensile.git@${tensile_tag}")
message (STATUS "using GIT Tensile fork=${tensile_fork} from branch=${tensile_tag}")
endif()
list(APPEND CMAKE_PREFIX_PATH ${VIRTUALENV_HOME_DIR})
set( Tensile_ROOT "${VIRTUALENV_HOME_DIR}/bin" CACHE STRING "Local path of Tensile" )
set( Tensile_TensileConfig ${VIRTUALENV_HOME_DIR}/cmake/TensileConfig.cmake)

find_package(Tensile 4.11.0 EXACT REQUIRED HIP LLVM OpenMP PATHS "${INSTALLED_TENSILE_PATH}")
endif()

# Find HCC/HIP dependencies
Expand Down
27 changes: 15 additions & 12 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ rocBLASCI:
rocblas.paths.build_command = './install.sh -lasm_ci -c'

// Define test architectures, optional rocm version argument is available
def nodes = new dockerNodes(['gfx900 && ubuntu', 'gfx906 && centos7'], rocblas)
def nodes = new dockerNodes(['gfx900 && ubuntu', 'gfx906 && ubuntu', 'gfx900 && centos7', 'gfx906 && centos7'], rocblas)

boolean formatCheck = true

Expand All @@ -41,7 +41,7 @@ rocBLASCI:
platform, project->

project.paths.construct_build_prefix()

def command

if(platform.jenkinsLabel.contains('hip-clang'))
Expand All @@ -63,6 +63,8 @@ rocBLASCI:
platform.runCommand(this, command)
}

rocblas.timeout.test = 10

def testCommand =
{
platform, project->
Expand All @@ -78,7 +80,7 @@ rocBLASCI:
cd ${project.paths.project_build_prefix}/build/release/clients/staging
LD_LIBRARY_PATH=/opt/rocm/hcc/lib GTEST_LISTENER=NO_PASS_LINE_IN_LOG sudo ./rocblas-test --gtest_output=xml --gtest_color=yes --gtest_filter=*nightly*-*known_bug* #--gtest_filter=*nightly*
"""

platform.runCommand(this, command)
junit "${project.paths.project_build_prefix}/build/release/clients/staging/*.xml"
}
Expand All @@ -90,7 +92,7 @@ rocBLASCI:
LD_LIBRARY_PATH=/opt/rocm/hcc/lib ./example-sscal
LD_LIBRARY_PATH=/opt/rocm/hcc/lib GTEST_LISTENER=NO_PASS_LINE_IN_LOG sudo ./rocblas-test --gtest_output=xml --gtest_color=yes --gtest_filter=*quick*:*pre_checkin*-*known_bug* #--gtest_filter=*checkin*
"""

platform.runCommand(this, command)
junit "${project.paths.project_build_prefix}/build/release/clients/staging/*.xml"
}
Expand All @@ -104,7 +106,7 @@ rocBLASCI:
cd ${project.paths.project_build_prefix}/build/release/clients/staging
LD_LIBRARY_PATH=/opt/rocm/hcc/lib GTEST_LISTENER=NO_PASS_LINE_IN_LOG ./rocblas-test --gtest_output=xml --gtest_color=yes --gtest_filter=*nightly*-*known_bug* #--gtest_filter=*nightly*
"""

platform.runCommand(this, command)
junit "${project.paths.project_build_prefix}/build/release/clients/staging/*.xml"
}
Expand All @@ -116,7 +118,7 @@ rocBLASCI:
LD_LIBRARY_PATH=/opt/rocm/hcc/lib ./example-sscal
LD_LIBRARY_PATH=/opt/rocm/hcc/lib GTEST_LISTENER=NO_PASS_LINE_IN_LOG ./rocblas-test --gtest_output=xml --gtest_color=yes --gtest_filter=*quick*:*pre_checkin*-*known_bug* #--gtest_filter=*checkin*
"""

platform.runCommand(this, command)
junit "${project.paths.project_build_prefix}/build/release/clients/staging/*.xml"
}
Expand All @@ -127,21 +129,21 @@ rocBLASCI:
{
platform, project->

def command
def command

if(platform.jenkinsLabel.contains('centos'))
{
command = """
set -x
cd ${project.paths.project_build_prefix}/build/release
make package
rm -rf package && mkdir -p package
mkdir -p package
mv *.rpm package/
rpm -qlp package/*.rpm
"""

platform.runCommand(this, command)
platform.archiveArtifacts(this, """${project.paths.project_build_prefix}/build/release/package/*.rpm""")
platform.archiveArtifacts(this, """${project.paths.project_build_prefix}/build/release/package/*.rpm""")
}
else if(platform.jenkinsLabel.contains('hip-clang'))
{
Expand All @@ -153,9 +155,10 @@ rocBLASCI:
set -x
cd ${project.paths.project_build_prefix}/build/release
make package
rm -rf package && mkdir -p package
make package_clients
mkdir -p package
mv *.deb package/
dpkg -c package/*.deb
mv clients/*.deb package/
"""

platform.runCommand(this, command)
Expand Down
8 changes: 4 additions & 4 deletions bump_develop_version.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
# - run this script in master branch
# - after running this script merge master into develop

OLD_ROCBLAS_VERSION="2.6.0"
NEW_ROCBLAS_VERSION="2.7.0"
OLD_ROCBLAS_VERSION="2.8.0"
NEW_ROCBLAS_VERSION="2.9.0"

OLD_TENSILE_VERSION="tensile_tag f5b33e22367807ca5bff1002b6e7e8939409d961"
NEW_TENSILE_VERSION="tensile_tag develop"
OLD_TENSILE_VERSION="tensile_tag 015477ad8c8ea0ef6f59b8d49a65015b46b8a48e"
NEW_TENSILE_VERSION="tensile_tag 015477ad8c8ea0ef6f59b8d49a65015b46b8a48e"

sed -i "s/${OLD_ROCBLAS_VERSION}/${NEW_ROCBLAS_VERSION}/g" CMakeLists.txt
sed -i "s/${OLD_TENSILE_VERSION}/${NEW_TENSILE_VERSION}/g" CMakeLists.txt
Expand Down
8 changes: 4 additions & 4 deletions bump_master_version.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@
# - after running this script and merging develop into master, run bump_develop_version.sh in master and
# merge master into develop

OLD_ROCBLAS_VERSION="2.5.0"
NEW_ROCBLAS_VERSION="2.6.0"
OLD_ROCBLAS_VERSION="2.7.0"
NEW_ROCBLAS_VERSION="2.8.0"

OLD_TENSILE_VERSION="tensile_tag develop"
NEW_TENSILE_VERSION="tensile_tag f5b33e22367807ca5bff1002b6e7e8939409d961"
OLD_TENSILE_VERSION="tensile_tag 9c63a0bf1c0acdb44376ddc80b867beb3386981a"
NEW_TENSILE_VERSION="tensile_tag 015477ad8c8ea0ef6f59b8d49a65015b46b8a48e"

OLD_MINIMUM_REQUIRED_VERSION="MinimumRequiredVersion: 4.6.0"
NEW_MINIMUM_REQUIRED_VERSION="MinimumRequiredVersion: 4.7.1"
Expand Down
52 changes: 52 additions & 0 deletions clients/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,15 @@ endif()
# This project may compile dependencies for clients
project( rocblas-clients LANGUAGES CXX )

if(EXISTS /etc/redhat-release)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp=libgomp -pthread")
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp -pthread")
endif()

set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)

list( APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake )

include( build-options )
Expand Down Expand Up @@ -75,3 +84,46 @@ add_custom_command( OUTPUT "${ROCBLAS_GENTEST}"
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" )

add_custom_target( rocblas-common DEPENDS "${ROCBLAS_COMMON}" "${ROCBLAS_TEMPLATE}" "${ROCBLAS_GENTEST}" )


# TODO: move to rocm-cmake
include(CMakeParseArguments)

function(rocm_create_package_clients)
set(options)
set(oneValueArgs LIB_NAME DESCRIPTION SECTION MAINTAINER VERSION)
set(multiValueArgs DEPENDS)

cmake_parse_arguments(PARSE "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})

string(CONCAT PACKAGE_NAME ${PARSE_LIB_NAME} "-clients-" ${PARSE_VERSION} "-Linux.deb")
string(CONCAT DEB_CONTROL_FILE_CONTENT "Package: " ${PARSE_LIB_NAME} "-clients"
"\nVersion: " ${PARSE_VERSION}
"\nSection: " ${PARSE_SECTION}
"\nPriority: optional"
"\nArchitecture: amd64"
"\nMaintainer: " ${PARSE_MAINTAINER}
"\nDescription: " ${PARSE_DESCRIPTION}
"\nDepends: " ${PARSE_LIB_NAME} "(>=" ${PARSE_VERSION} ")\n\n")

if(EXISTS "${PROJECT_BINARY_DIR}/package")
file(REMOVE_RECURSE "${PROJECT_BINARY_DIR}/package")
endif()
file(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/package/opt/rocm/${PARSE_LIB_NAME}/bin")
file(WRITE "${PROJECT_BINARY_DIR}/package/DEBIAN/control" ${DEB_CONTROL_FILE_CONTENT})

add_custom_target(package_clients
COMMAND ${CMAKE_COMMAND} -E remove -f "${PROJECT_BINARY_DIR}/package/opt/rocm/${PARSE_LIB_NAME}/bin/*"
COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_BINARY_DIR}/staging/*" "${PROJECT_BINARY_DIR}/package/opt/rocm/${PARSE_LIB_NAME}/bin"
COMMAND dpkg -b "${PROJECT_BINARY_DIR}/package/" ${PACKAGE_NAME})
endfunction(rocm_create_package_clients)


if (BUILD_CLIENTS_SAMPLES OR BUILD_CLIENTS_TESTS OR BUILD_CLIENTS_SELFTEST OR BUILD_CLIENTS_RIDER)

rocm_create_package_clients(LIB_NAME rocblas
DESCRIPTION "Radeon Open Compute BLAS library"
MAINTAINER "rocblas-maintainer@amd.com>"
SECTION "dev"
VERSION ${rocblas_VERSION})
endif()
Loading