intel-gtpin: new package (#28542)
This commit is contained in:
parent
b1ff9c05bc
commit
36020d69d7
77
var/spack/repos/builtin/packages/intel-gtpin/package.py
Normal file
77
var/spack/repos/builtin/packages/intel-gtpin/package.py
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
from spack import *
|
||||||
|
|
||||||
|
|
||||||
|
class IntelGtpin(Package):
|
||||||
|
"""Intel(R) GtPin is a dynamic binary instrumentation framework for GEN
|
||||||
|
(Intel(R) graphics) Architecture. It is a unique SW platform for
|
||||||
|
profiling a code running on GEN Execution Units (EUs). GTPin
|
||||||
|
includes a binary instrumentation engine for Intel(R) GPUs EUs, along
|
||||||
|
with an API for developing analysis tools, and many sample
|
||||||
|
tools. GTPin allows you to capture a range of dynamic profiling
|
||||||
|
data at the finest granularity of the specific GPU EU instruction.
|
||||||
|
GTPin supports both compute and graphics workloads. It operates on
|
||||||
|
regular, real-world GPU applications, as well as on pre-captured
|
||||||
|
API streams. The technology enables fast and accurate dynamic
|
||||||
|
analysis of the code that is executing on the GPU EUs. GTPin opens
|
||||||
|
up new opportunities to perform dynamic, low level workload and HW
|
||||||
|
analysis on an Intel(R) GPU, with greater efficiency than other
|
||||||
|
current solutions. Some of the GTPin capabilities are integrated
|
||||||
|
into Intel(R) VTune(TM) Profiler, Intel(R) Advisor, and the Intel(R)
|
||||||
|
Graphics Performance Analyzers (Intel(R) GPA).
|
||||||
|
|
||||||
|
GTPin is available, along with a set of analysis tools based on
|
||||||
|
the GTPin framework. It also enables more advanced users to
|
||||||
|
develop their own analysis tools. GTPin can analyze any GPU
|
||||||
|
application. It also collects dynamic profiling data which the
|
||||||
|
application executes on the GPU.
|
||||||
|
"""
|
||||||
|
|
||||||
|
homepage = "https://www.intel.com/content/www/us/en/developer/articles/tool/gtpin.html"
|
||||||
|
url = "https://downloadmirror.intel.com/686383/external-gtpin-2.19-linux.tar.xz"
|
||||||
|
|
||||||
|
maintainers = ['rashawnlk']
|
||||||
|
|
||||||
|
version('2.19', sha256='996cdfbcf7fbe736407d063e0ed1794e51bf31a72b50cf733a407af71118a304',
|
||||||
|
url='https://downloadmirror.intel.com/686383/external-gtpin-2.19-linux.tar.xz')
|
||||||
|
|
||||||
|
version('2.13', sha256='d715a55074147b73d51583bf684660b40f871e38e29af2bfc14dfe070fcbbada',
|
||||||
|
url='https://downloadmirror.intel.com/682776/external-gtpin-2.13-linux.tar.bz2')
|
||||||
|
version('2.12', sha256='432f1365bf4b3ff5847bb1059fb468ce6c7237ccd1489fbe8005f48e5a11e218',
|
||||||
|
url='https://downloadmirror.intel.com/682777/external-gtpin-2.12-linux.tar.bz2')
|
||||||
|
version('2.11.4', sha256='57f4d3aa67e8b7eb8a2456a4a770e60af770c599180cb2b6c3c8addd37311093',
|
||||||
|
url='https://downloadmirror.intel.com/682779/external-gtpin-2.11.4-linux.tar.bz2')
|
||||||
|
|
||||||
|
depends_on('patchelf', type='build')
|
||||||
|
|
||||||
|
# Gtpin only runs on linux/cray x86_64.
|
||||||
|
conflicts('platform=darwin', msg='intel-gtpin only runs on linux/cray')
|
||||||
|
conflicts('target=ppc64:', msg='intel-gtpin only runs on x86_64')
|
||||||
|
conflicts('target=ppc64le:', msg='intel-gtpin only runs on x86_64')
|
||||||
|
conflicts('target=aarch64:', msg='intel-gtpin only runs on x86_64')
|
||||||
|
|
||||||
|
# The gtbin tar file installs into Bin, Include, Lib directories.
|
||||||
|
@property
|
||||||
|
def command(self):
|
||||||
|
return Executable(self.prefix.Bin.gtpin)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def headers(self):
|
||||||
|
return find_headers('gtpin', self.prefix.Include)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def libs(self):
|
||||||
|
return find_libraries('libgtpin', self.prefix.Lib, recursive=True)
|
||||||
|
|
||||||
|
# The gtpin binary uses libraries from its own Lib directory but
|
||||||
|
# doesn't set rpath.
|
||||||
|
def install(self, spec, prefix):
|
||||||
|
patchelf = spec['patchelf'].command
|
||||||
|
patchelf('--set-rpath', join_path('$ORIGIN', '..', 'Lib', 'intel64'),
|
||||||
|
join_path('Bin', 'gtpin'))
|
||||||
|
|
||||||
|
install_tree('.', prefix)
|
Loading…
Reference in New Issue
Block a user