Coder Social home page Coder Social logo

kokkos-tutorials's Introduction

Kokkos

Kokkos: Core Libraries

Kokkos Core implements a programming model in C++ for writing performance portable applications targeting all major HPC platforms. For that purpose it provides abstractions for both parallel execution of code and data management. Kokkos is designed to target complex node architectures with N-level memory hierarchies and multiple types of execution resources. It currently can use CUDA, HIP, SYCL, HPX, OpenMP and C++ threads as backend programming models with several other backends in development.

Kokkos Core is part of the Kokkos C++ Performance Portability Programming Ecosystem.

Kokkos is a Linux Foundation project.

Learning about Kokkos

To start learning about Kokkos:

Obtaining Kokkos

The latest release of Kokkos can be obtained from the GitHub releases page.

The current release is 4.3.00.

curl -OJ -L https://github.com/kokkos/kokkos/archive/refs/tags/4.3.00.tar.gz
# Or with wget
wget https://github.com/kokkos/kokkos/archive/refs/tags/4.3.00.tar.gz

To clone the latest development version of Kokkos from GitHub:

git clone -b develop  https://github.com/kokkos/kokkos.git

Building Kokkos

To build Kokkos, you will need to have a C++ compiler that supports C++17 or later. All requirements including minimum and primary tested compiler versions can be found here.

Building and installation instructions are described here.

You can also install Kokkos using Spack: spack install kokkos. Available configuration options can be displayed using spack info kokkos.

For the complete documentation: kokkos.org/kokkos-core-wiki/

Support

For questions find us on Slack: https://kokkosteam.slack.com or open a GitHub issue.

For non-public questions send an email to: crtrott(at)sandia.gov

Contributing

Please see this page for details on how to contribute.

Citing Kokkos

Please see the following page.

License

License

Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government retains certain rights in this software.

The full license statement used in all headers is available here or here.

kokkos-tutorials's People

Contributors

anhbe0 avatar ax3l avatar blegouix avatar brian-kelley avatar crtrott avatar dalg24 avatar dsmishler avatar dsunder avatar dwatersg avatar e10harvey avatar hcedwar avatar ibaned avatar janciesko avatar jeffmiles63 avatar jrmadsen avatar kyungjoo-kim avatar lucbv avatar marcogarofalo avatar masterleinad avatar mhoemmen avatar micheldemessieres avatar ndellingwood avatar nmm0 avatar pkestene avatar rombur avatar seheracer avatar srajama1 avatar vqd8a avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kokkos-tutorials's Issues

integer division issue in slide 19 ?

Just an insignificant detail I'm sure but in the short version of the slides, slide 19/83:

double  totalIntegral = 0;
for (int64_t i = 0; i < numberOfIntervals; ++i) {
  const  double x =lower+ (i/numberOfIntervals) * (upper-lower);
  const  double  thisIntervalsContribution =function(x);
  totalIntegral  +=  thisIntervalsContribution;
}
totalIntegral  *= dx;

assuming numberOfIntervals is of int type, isn't i/numberOfIntervals always 0 ?

Cannot run Examples using Cuda on V100

I am attempting to run Exampe #2 in the Intro-Full space on an NVidia V100.

I have cloned kokkos and kokkos-tutorials in my $HOME/Kokkos directory.

I have GCC 8.2.0 and Cuda 10.1.243 in my LD_LIBRARY_PATH/PATH.

I go into kokkos-tutorials/Intro-Full/Exercises/02/Begin and run:

make -j KOKKOS_DEVICES=Cuda
make -j KOKKOS_DEVICES=OpenMP

Both run without error.

The host binary runs fine. However the when running:

dgx2 { ~/Kokkos/kokkos-tutorials/Intro-Full/Exercises/02/Begin }-> CUDA_VISIBLE_DEVICES=0 ./02_Exercise.cuda -S 26
  User S is 67108864
  Total size S = 67108864 N = 65536 M = 1024
  Error: result( 0.000000 ) != solution( 67108864.000000 )
terminate called after throwing an instance of 'std::runtime_error'
  what():  cudaFuncSetCacheConfig( cuda_parallel_launch_local_memory<DriverType>, (prefer_shmem ? cudaFuncCachePreferShared : cudaFuncCachePreferL1)) error( cudaErrorIllegalAddress): an illegal memory access was encountered /home/parton/Kokkos/kokkos/core/src/Cuda/Kokkos_Cuda_KernelLaunch.hpp:426
Traceback functionality not available

Aborted

My first assumption is that I've done something wrong, but I can't quite figure it out as I was directly following the tutorial from ATPESC last summer on youtube.

Kokkos Tutorial PACT'19

Please insert your email address in this spreadsheet:

https://docs.google.com/spreadsheets/d/1R2K_IMfEPWdCdFCacuRjhVhrjwv1P01Wwk6D5z9GbWc/edit#gid=0

Use the following private key to SSH into one of these instances once you claim an instance:

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAkURdSu63LbMEVjs/CXrz/JdBQtcKZMjoB60L4x7vA3gVQWn89VFYUFRGzTqx
ZTv1SBo3h4AmfGj/ATz6/FYtFfSLhlQ3I/zeGuNm3f1mhsePVos14twcX69R2DPL6+rzm7U6EHkH
7N7TluJq0QMRHaUtxBIXDo8KmUyjgJI0QqJ1nat2ociQx1qJwHXuqMAYv/+3uFubqq8+T21Cxtxw
8FqdTd1N/K7waHWFSdsgDaKRT2L3m1nFuWDRJJfnuodOYOLUOn5tQz9eset/LSSyn3tWzRYhL0Xw
rTfHI90SPzRulooej0TvZUPhxncFx8dvfJSYZfNb5Qq1DoEbRbKg9wIDAQABAoIBAA27S6JQrGoa
ePd5xDyuLbAb0CR0VVwvjZdkKTJ/8xH94Ox9C1dZKCL3xHWT7b7nCwmUyNj7KSgreKdyTztZHgvs
QOAix8+UEJ60Dj4/vNhStt70a9SU/+2fkfoA827Kl9qJKAL0neYrLg8eOgCl7JFD0u6s0xciOFtD
XlVB/MSrl5Pt4f+orgVbLpUbIclO6ChtQp3nOoQEIjNagWCrIUr9EYf17DIYIa8a3JiGsVEt9nAa
/TLjYLe3v8lqjTrE0WFNpComTXcKVFp4AGKM8VSqsVpKeKpIgLXNLF6e8tnLKCixDpKGUqRjPdN0
kt9/NtcHVY1u8hW3Dy4k+mnrIbkCgYEA6gdULaifBZ9NouaEry/1EqX4hbwmafXkPvKAvZzQ8sob
YzViIysSu5QAHsvuuv6vxIvE8WbLWPyi4krWToLCng8SPK0JsT+GA75LGNCk/E1gF4l6BX5mVurd
7pCWv872z3XhplY1lkZlmkdw0GllocMWbEidyWpk1Pl7QkmS5KsCgYEAnue6wQmUwBculUQ9FM7C
SQg93Vj8W1mwVbWTRa8WCCpdSgEIKDb2rElsXOOGvrxp3n05uBvSK6YJNC9S0w7F9rBSNHeTk+qb
lgLxZnZlL/PODcJQvFN5nTfBmkSKPRWzRaB2lMDlJliFAulVXvqKXphiqwd0FsUmBjcmTg8cPOUC
gYEA2rLWm4SEdwCT0LOTMxOh9jdbs75MN6EuFxUP8iHlsb3lMiTk/PB3pQt9wUnaYq03HHlxJhZl
2Vbd8JL3Co9vx71V0ZXzBMzUNBNUom/4fj7gmZ5DhXbFtFvv4c0E02JZiy4iHQtbMH/A2xf/+QNF
kpF5FuAVc/AVImGyKhQPTdkCgYACckzkxfH9Vx4HfEp4dIp3N2JEcydHfMUDPM1sqDptm8Fd71Ah
1l7L3kGF2Jbtftcebs0hsYP12hOQMx5SU4rmtmY9mo2yHE2S7K6sxivepiFJAvHdRGe97OrVJjL+
p8Pf0Y2h0qp0ga5ikhcXZEIXHL+AJJg79YMVW2oCj6b+pQKBgQCkw3i9vy5OHle6HUirO1ns/LJb
O4ivIyfa7NnJebUW6BK5NsCyfKRZN3OBUNmVrtnpX4kkYbAV5qt03bOu69OkhOt9lOmv/ZVs7v21
Z1Ims7mrwVFl4tBW97lWMeipnzXGxgTyqzcDIGLpyP9aBID+0vq35ado4wrjRi44fkhQhQ==
-----END RSA PRIVATE KEY-----

Save this key into a file on your laptop (e.g., tutorial-key.pem). Note that file must only be readable by you: chmod go-r tutorial-key.pem

You can then login like this:

ssh -i tutorial-key.pem ec2-user@IPADDRESS

where IPADDRESS is the URL you claimed on the spreadsheet.

Tutorials Signup and Cloud Instances

Please insert your email address in this spreadsheet:

REMOVED LINK

We will fill in an IP address for the cloud instance you can use for the hands-on exercise.
The ssh-key is attached. Note it must only be readable by you: chmod go-r tutorial-1.txt

ssh -i tutorial-1.txt ec2-user@IPADDRESS

The tutorial Exercises are located in Kokkos/kokkos-tutorials/Intro-Short/Exercises

Problem in Exercises/Makefile

Hello Kokkos Team,
I believe the content of kokkos-tutorials/Exercises/Makefile is not compatible with the exercises. In fact, it is trying to compile exercises 5-10 which don't exist and it doesn't compile some examples that exist in the Exercises directory. I was able to fix it locally but figured I should report/ask about the reason.
Thanks!

Cannot reproduce openmp example

Hi,

I am trying to learn basics of Kokkos just to see how comfotable I feel with it. I have not particpated in any of your tutorials but I have watched a video on YT and went through several slide decks in this repository.

I am working on P8 machines with Pascals, but also locally on x86+K1100. I installed kokkos myself and I use lmod to manage it. To build kokkos I use something like this:

NVCC_WRAPPER=$(readlink -f kokkos/bin/nvcc_wrapper)
mkdir build
cd build
../kokkos/generate_makefile.bash \
    --prefix=${INSTALL_PATH} \
    --arch="Power8,Pascal60" \
    --compiler=${NVCC_WRAPPER} \
    --with-cuda \
    --with-cuda-options="enable_lambda" \
    --with-openmp \
    && make kokkoslib -j20 && make install

My first problem is that Makefiles in the tutorials overwrite KOKKOS_PATH variables, but I can handle that manually.

My biggest current concern is not being able to run openmp examples e.g. tutorial 01 and 02. If I use your Makefiles I can an error about -arch=60. If I remove all CUDA specific flags I can compile, but I get a CUDA error at runtime

  Total size S = 4194304 N = 4096 M = 1024
Kokkos::OpenMP::initialize WARNING: OMP_PROC_BIND environment variable not set
  In general, for best performance with OpenMP 4.0 or better set OMP_PROC_BIND=spread and OMP_PLACES=threads
  For best performance with OpenMP 3.1 set OMP_PROC_BIND=true
  For unit testing set OMP_PROC_BIND=false
terminate called after throwing an instance of 'std::runtime_error'
  what():  cudaDeviceSynchronize() error( cudaErrorIllegalAddress): an illegal memory access was encountered /home/rrs59-sxa03/build/kokkos/kokkos/core/src/Cuda/Kokkos_Cuda_Impl.cpp:119
Traceback functionality not available

My feeling is that I am doing something terribly wrong due to my misunderstanding. Is it possible to have CUDA and OpenMP backends in one kokkos installation?

Kokkos Lecture Series July-September

1st Kokkos Lecture Series July-September

The Kokkos team will provide its first Kokkos Lecture Series, where attendees learn everything necessary to start using Kokkos to write performance portable code. This Kokkos Lecture Series will consist of a 2-hour online lecture every Friday and exercises as homework. The team will provide support via GitHub and Slack throughout the time of the training.

Wiki Page with Recordings and Q&A: Lecture Series

Office Hours Tuesday 3-5PM ET: see below

Signup

Registration with email address, name and institution is necessary here:
https://www.exascaleproject.org/event/kokkos-class-series/

The event is free.

What is Kokkos?

Kokkos is a C++ Programming Model for Performance Portability developed by a team spanning some of the major HPC facilities in the world. It allows developers to implement their applications in a single source fashion, with hardware vendor agnostic programming patterns. Implemented as a C++ template meta programming library, Kokkos can be used with the primary tool chains on any HPC platforms. The model is used by many HPC applications both within and outside the US, and is the primary programming model for the efforts of the Sandia National Laboratory to make their engineering and science codes ready for exascale. At this point more than 100 projects are using Kokkos to obtain performance portability.

The tutorial will teach attendees the basics of Kokkos programming through a step-by-step sequence of lectures and hands-on exercises. Fundamental concerns of performance portable programming will be explained. At the end of the training, attendees will have learned how to dispatch parallel work with Kokkos, do parallel reductions, manage data, identify and manage data layout issues and expose hierarchical parallelism. Attendees will also learn about advanced topics such as using SIMD vector types, tasking and integrate Kokkos with MPI. Furthermore the Kokkos Lecture Series will cover the use of Kokkos Tools to profile and tune applications, as well as leveraging the KokkosKernels math library to access performance portable linear algebra operations. The material used during the training will be available online, including the exercises and their solutions. Support hours will be offered to answer questions and help with exercises - including access to Cloud Instances with GPUs to do the exercises (we may need to limit attendee numbers for those depending on demand).

Contents of the Tutorial

This is a preliminary outline of the training. We are keeping a 9th day in reserve for anticipated schedule slippage. The lectures will be held Fridays: 10:00-12:00 MT (12:00-14:00 ET; 9:00-11:00 PT).

  • Module 1: Introduction 07/17/2020
    • Introduction
    • How to build
    • Data parallel execution patterns
  • Module 2: Views and Spaces 07/24/2020
    • Views
    • Memory Space and Execution Spaces
    • Memory access patterns (layouts)
  • Module 3: Data Structures and MDRange 07/31/2020
    • Subview
    • MDRange
    • Dual View
    • Atomics
    • Scatter View
  • Module 4: Hierarchical Parallelism 08/07/2020
    • Hierarchical parallelism
    • Scratch Space
    • UniqueToken
  • Module 5: Streams, Tasking and SIMD 08/14/2020
    • Stream Integration
    • Tasking
    • SIMD
  • Module 6: MPI and PGAS 08/21/2020
    • MPI
    • PGAS
  • Module 7: Tools 08/28/2020
    • Profiling
    • Tuning
    • Static Analysis
  • Module 8: Kokkos Kernels 09/04/2020
    • BLAS
    • Sparse BLAS
  • Backup Day: 09/11/2020

How to Attend

  • The lecture series is available to everyone
  • No-cost registration is necessary, meeting password will be send to registrants.
  • For the exercises access to an NVIDIA GPU system or AMD GPU system with up-to-date software stack is recommended.

For updates and questions visit: #38

AWS Cloud Instances for June Training

Please insert your email address in this spreadsheet:

https://docs.google.com/spreadsheets/d/16xnKMV9beGzEl50l2mfPKpCYzcj81DmqhSs_M30mfds/edit#gid=0

Use the following private key to SSH into one of these instances once you claim an instance:

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAkURdSu63LbMEVjs/CXrz/JdBQtcKZMjoB60L4x7vA3gVQWn89VFYUFRGzTqx
ZTv1SBo3h4AmfGj/ATz6/FYtFfSLhlQ3I/zeGuNm3f1mhsePVos14twcX69R2DPL6+rzm7U6EHkH
7N7TluJq0QMRHaUtxBIXDo8KmUyjgJI0QqJ1nat2ociQx1qJwHXuqMAYv/+3uFubqq8+T21Cxtxw
8FqdTd1N/K7waHWFSdsgDaKRT2L3m1nFuWDRJJfnuodOYOLUOn5tQz9eset/LSSyn3tWzRYhL0Xw
rTfHI90SPzRulooej0TvZUPhxncFx8dvfJSYZfNb5Qq1DoEbRbKg9wIDAQABAoIBAA27S6JQrGoa
ePd5xDyuLbAb0CR0VVwvjZdkKTJ/8xH94Ox9C1dZKCL3xHWT7b7nCwmUyNj7KSgreKdyTztZHgvs
QOAix8+UEJ60Dj4/vNhStt70a9SU/+2fkfoA827Kl9qJKAL0neYrLg8eOgCl7JFD0u6s0xciOFtD
XlVB/MSrl5Pt4f+orgVbLpUbIclO6ChtQp3nOoQEIjNagWCrIUr9EYf17DIYIa8a3JiGsVEt9nAa
/TLjYLe3v8lqjTrE0WFNpComTXcKVFp4AGKM8VSqsVpKeKpIgLXNLF6e8tnLKCixDpKGUqRjPdN0
kt9/NtcHVY1u8hW3Dy4k+mnrIbkCgYEA6gdULaifBZ9NouaEry/1EqX4hbwmafXkPvKAvZzQ8sob
YzViIysSu5QAHsvuuv6vxIvE8WbLWPyi4krWToLCng8SPK0JsT+GA75LGNCk/E1gF4l6BX5mVurd
7pCWv872z3XhplY1lkZlmkdw0GllocMWbEidyWpk1Pl7QkmS5KsCgYEAnue6wQmUwBculUQ9FM7C
SQg93Vj8W1mwVbWTRa8WCCpdSgEIKDb2rElsXOOGvrxp3n05uBvSK6YJNC9S0w7F9rBSNHeTk+qb
lgLxZnZlL/PODcJQvFN5nTfBmkSKPRWzRaB2lMDlJliFAulVXvqKXphiqwd0FsUmBjcmTg8cPOUC
gYEA2rLWm4SEdwCT0LOTMxOh9jdbs75MN6EuFxUP8iHlsb3lMiTk/PB3pQt9wUnaYq03HHlxJhZl
2Vbd8JL3Co9vx71V0ZXzBMzUNBNUom/4fj7gmZ5DhXbFtFvv4c0E02JZiy4iHQtbMH/A2xf/+QNF
kpF5FuAVc/AVImGyKhQPTdkCgYACckzkxfH9Vx4HfEp4dIp3N2JEcydHfMUDPM1sqDptm8Fd71Ah
1l7L3kGF2Jbtftcebs0hsYP12hOQMx5SU4rmtmY9mo2yHE2S7K6sxivepiFJAvHdRGe97OrVJjL+
p8Pf0Y2h0qp0ga5ikhcXZEIXHL+AJJg79YMVW2oCj6b+pQKBgQCkw3i9vy5OHle6HUirO1ns/LJb
O4ivIyfa7NnJebUW6BK5NsCyfKRZN3OBUNmVrtnpX4kkYbAV5qt03bOu69OkhOt9lOmv/ZVs7v21
Z1Ims7mrwVFl4tBW97lWMeipnzXGxgTyqzcDIGLpyP9aBID+0vq35ado4wrjRi44fkhQhQ==
-----END RSA PRIVATE KEY-----

Save this key (inluding the ----BEGIN... and ----END... part) into a file on your laptop (e.g., tutorial-key.pem). Note that file must only be readable by you: chmod go-r tutorial-key.pem

You can then login like this:

ssh -i tutorial-key.pem ec2-user@IPADDRESS
where IPADDRESS is the URL you claimed on the spreadsheet.

AWS Cloud Instances for April 2020 Online Bootcamp

Claim an instance first in this spreadsheet by putting your name next to an instance:

https://docs.google.com/spreadsheets/d/1I-JF-W6OwtYyTNQvDAgDbd2r5UYrFhb7FtWxPgnXezA/edit#usp=sharing

Use the following private key to SSH into one of these instances once you claim an instance:

-----BEGIN RSA PRIVATE KEY-----
MIIEpgIBAAKCAQEAweKrRQpMCMNO4foT8saHy7o4spElPuSS81W5xGNNOjAfaiwQE7SjUdnC2kmf
3Uoy4Vlz5/tNqexc+9lcFKiZ2WZRnKKjL0ZDsN/q17mLUeUs6BchjP0TV+3cZ9EKoez5cRKk96bV
zmW6zAbqNZY3qlHE2sKD6LkiSzbfioCxz4JJqqnlkBk8sJnMnwRQl16zmO0+pwhcWQ+tkjxbNpd0
4em/sgW5D5VQ67kVaM5WVL7w+X5d3hDyY/2dIpMp55H1iH/TEvf2JH65uX7X95aBq2VHUy0Hp2/H
MD9TwfjkTH/eXFyLHvOmdTBtlq9cU5CFxt6uG+zs2fpLOlaBFwKftQIDAQABAoIBAQCHhx23dfou
Se/zEG8vTk2QQEzvrXv+maKLDAp91/gcy5S6D7DxRVzAk1qcYcio0/v7AB+AMm9Yb0uUFJ1EJ5Lb
n6U+u4UcP56DnhI315Amn+8jEUA3oJQL684cl8g55j97JdBA+NMNopjPk6nV6XphySS00jGI1Ri+
wM3DsDAa3zyHj9pySZCjk23fkJTS/62ww133Y4xFpbM7jGL1VSnVghqNBDuwIWCXxrnrV+j6CKRN
vE2sFR53rcelQMwX8XBNn8FHMMk8YuKxgLowP14x6hmHfrg2/JVpLKaBz4ncPb2cQ4iyVbAPNQ+k
YR85nBK5knrB0yNydIX0zctlRhelAoGBAPGaM2iUWNsfGD5eRnhHjCbI+ceAL5C7X7YW5Oo3K7sc
JXhF6Cc+XPESr3rjamVqoorjayU/xuHSDRY2FiS+P3P7llko9Z57f22iuZhfxxp7Sa1ZEpsRaBYj
o50vWeEY25/XyFATJCOzRIEtfMv9MhOqWIXkkm8OFKa0z7a8S15DAoGBAM1whBFD0Qo2lJkBLGvx
T/kMGKUk0MLvukFW4BBc6nnNCB0RoJpTdqf8FyJf9jRJL0pfUk81i7HeTPWTOdZPxBcIqXEc7xEA
lIBJM5JqYAuEk7phJdepqwPZwtZ5GvLuIHs9LwSOeg9LkDSf3jOJODzNXFx8gI55Tz16tvzD0jan
AoGBAOvdu+SUNy8s6zEwPqH8T5Ip0Nh4h3dHxkfxj+gslm/kKZyCuwNc+cWMlW5miJ+b/DWVkiva
WKJru8T8Zp/WcAIeEwjWWPww2xXAsGpWzv1GcYZfmC91TeWXQ4sYCCoeZ4NkWTX7ieOkhvOJ4fUQ
KgxS2HtWy7LJz1V03fgrWXUbAoGBAMQoWvHhPwfxdZFifXfTwfiahC2rKWn4XG9m9CqrjXcfPlAD
NMYmS3W6TpyT5BGoj28D9SOMjQYYrIMPQHpRT3pu2tsWNW6WjzSusH9s8qgMvsGHYQq7Bn92vYLr
v7+Vf44srWg8Ym+YRuj4fMHYk8n6i+YDOvzO98pMEcznbSChAoGBAL/w1NzPMtYowshKaT0xsMJX
lRaEi/s1ta5qBuvay0t/BV/is2UCVtbiyLinSI6A8urSBLRfw4tG/lbP4QUxlXo8loz1ZuSDlHHo
naBrvrInhKXJJ8j0Ja03xIWnVr6T753DGgkMMG2/RUpbZy3bDQaFJtcGU1l+cyS8Y38hSZhs
-----END RSA PRIVATE KEY-----

Save this key into a file on your laptop (e.g., tutorial-key.pem). Note that file must only be readable by you: chmod go-r tutorial-key.pem

You can then login like this:

ssh -i tutorial-key.pem ec2-user@IPADDRESS
where IPADDRESS is the address you claimed on the spreadsheet.

Exercises - add scope guards to remove runtime warning messages

Runtime warning messages need to be fixed:

Kokkos allocation "A" is being deallocated after Kokkos::finalize was called
This behavior is incorrect Kokkos usage, and will crash in future releases
Kokkos allocation "x" is being deallocated after Kokkos::finalize was called
This behavior is incorrect Kokkos usage, and will crash in future releases
Kokkos allocation "y" is being deallocated after Kokkos::finalize was called
This behavior is incorrect Kokkos usage, and will crash in future releases

Add scope guards { and } or replace Kokkos::initialize() and Kokkos::finalize() with construction of a Kokkos::ScopeGuard object to address this.

Kokkos Tutorial SNL November 2019

Please insert your email address in this spreadsheet:

https://docs.google.com/spreadsheets/d/1Sz-tHJ8dLz8cJ-GJZ0q0vbIyza_Cb3CeqoZirpLBIOQ/edit?usp=drivesdk

Use the following private key to SSH into one of these instances once you claim an instance:

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAkURdSu63LbMEVjs/CXrz/JdBQtcKZMjoB60L4x7vA3gVQWn89VFYUFRGzTqx
ZTv1SBo3h4AmfGj/ATz6/FYtFfSLhlQ3I/zeGuNm3f1mhsePVos14twcX69R2DPL6+rzm7U6EHkH
7N7TluJq0QMRHaUtxBIXDo8KmUyjgJI0QqJ1nat2ociQx1qJwHXuqMAYv/+3uFubqq8+T21Cxtxw
8FqdTd1N/K7waHWFSdsgDaKRT2L3m1nFuWDRJJfnuodOYOLUOn5tQz9eset/LSSyn3tWzRYhL0Xw
rTfHI90SPzRulooej0TvZUPhxncFx8dvfJSYZfNb5Qq1DoEbRbKg9wIDAQABAoIBAA27S6JQrGoa
ePd5xDyuLbAb0CR0VVwvjZdkKTJ/8xH94Ox9C1dZKCL3xHWT7b7nCwmUyNj7KSgreKdyTztZHgvs
QOAix8+UEJ60Dj4/vNhStt70a9SU/+2fkfoA827Kl9qJKAL0neYrLg8eOgCl7JFD0u6s0xciOFtD
XlVB/MSrl5Pt4f+orgVbLpUbIclO6ChtQp3nOoQEIjNagWCrIUr9EYf17DIYIa8a3JiGsVEt9nAa
/TLjYLe3v8lqjTrE0WFNpComTXcKVFp4AGKM8VSqsVpKeKpIgLXNLF6e8tnLKCixDpKGUqRjPdN0
kt9/NtcHVY1u8hW3Dy4k+mnrIbkCgYEA6gdULaifBZ9NouaEry/1EqX4hbwmafXkPvKAvZzQ8sob
YzViIysSu5QAHsvuuv6vxIvE8WbLWPyi4krWToLCng8SPK0JsT+GA75LGNCk/E1gF4l6BX5mVurd
7pCWv872z3XhplY1lkZlmkdw0GllocMWbEidyWpk1Pl7QkmS5KsCgYEAnue6wQmUwBculUQ9FM7C
SQg93Vj8W1mwVbWTRa8WCCpdSgEIKDb2rElsXOOGvrxp3n05uBvSK6YJNC9S0w7F9rBSNHeTk+qb
lgLxZnZlL/PODcJQvFN5nTfBmkSKPRWzRaB2lMDlJliFAulVXvqKXphiqwd0FsUmBjcmTg8cPOUC
gYEA2rLWm4SEdwCT0LOTMxOh9jdbs75MN6EuFxUP8iHlsb3lMiTk/PB3pQt9wUnaYq03HHlxJhZl
2Vbd8JL3Co9vx71V0ZXzBMzUNBNUom/4fj7gmZ5DhXbFtFvv4c0E02JZiy4iHQtbMH/A2xf/+QNF
kpF5FuAVc/AVImGyKhQPTdkCgYACckzkxfH9Vx4HfEp4dIp3N2JEcydHfMUDPM1sqDptm8Fd71Ah
1l7L3kGF2Jbtftcebs0hsYP12hOQMx5SU4rmtmY9mo2yHE2S7K6sxivepiFJAvHdRGe97OrVJjL+
p8Pf0Y2h0qp0ga5ikhcXZEIXHL+AJJg79YMVW2oCj6b+pQKBgQCkw3i9vy5OHle6HUirO1ns/LJb
O4ivIyfa7NnJebUW6BK5NsCyfKRZN3OBUNmVrtnpX4kkYbAV5qt03bOu69OkhOt9lOmv/ZVs7v21
Z1Ims7mrwVFl4tBW97lWMeipnzXGxgTyqzcDIGLpyP9aBID+0vq35ado4wrjRi44fkhQhQ==
-----END RSA PRIVATE KEY-----

Save this key into a file on your laptop (e.g., tutorial-key.pem). Note that file must only be readable by you: chmod go-r tutorial-key.pem

You can then login like this:

ssh -i tutorial-key.pem ec2-user@IPADDRESS

where IPADDRESS is the URL you claimed on the spreadsheet.

Cloud Instances for UPenn Tutorial

Claim an instance first in this spreadsheet by putting your name next to an instance:

https://docs.google.com/spreadsheets/d/1bnD6Zh-bNEHcs0660yGLvarIiscmTNU19dSWXj-ifAo/edit?usp=sharing

Use the following private key to SSH into one of these instances once you claim an instance:

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAzE0IpRMb3JKn0Gsg1MFi3Pf6YulYPFG8AJTrMSHu4NpnTpuxGtDpp8vOxN3a
wrZiQHo6H75cMSSeO3a2iw6AzwMN/wY8HSao4qR0ZnnsPgurk6pvtnuD4hdh0wrSXJvIsn1Z+HgL
XwlmSaRYn+dRWlWMCy/AYm5N21eufZ81y6lLxP1farLNCooE8kwXxsO5zmV/l60lPX5f2jDrAOi6
s20WEEucOwSIBXpxK7GTAvwft5iaPcII1hXlAez961uxq+SEkcNEviTNNOL+VxVLwq4Oqsr1Iks3
lH99a0tZ4h8Z/t9GI2GGjPCfD1trdOfsHEdceZke5EE3G034S5eBDwIDAQABAoIBADCKQPqPjrga
dBq1yUgjZmzf0jK8BEXYmZV9zF+RE2ODILZxkWOwrUM7zjXCDF7k3HU7VSIDpX3bmGjCbN6fJIWK
0UF9Zrz6WXf34NwULcgUF8Du5rnxoMUQDyMIWDC+prGZzM2XIASFhDMNBC2B1TdkSfDCeLAqSv9J
VuDr+ekYNDJw1T9pc9iG+5lmj9bWIQ+QcCg8hyAbCOYzKsV6GquKfDMuH2X5WxYhaDU8oqHxQQUd
Z459LMGdTa4cGaYODZEop/RHxk4boqfS0tT/5kxB9jaU+yDzPMYoMoq6FoEfiS9Gl2175yUc7c2l
M6c2BTZdKdCUEO3pr0cOBNmtpjECgYEA9z9yeXgfH8sdNuM5MbkA9HE4k9zlo1oPTGfPZeWLqo3Z
2EGKRqoTtcHqsJY4mi0Mx5bHFUA5U7nIhNSNOp3ZZMPOiLi4oXCN/qtbHbObPqGyV33b2faQ2/Iv
facdmK8z7Akhd14aIlYSF3Chx1tFwm/PXj6lO5vZcqSj8JUwfqcCgYEA04hnHJfDQJMDUYvXLoB8
QgosjBlFF8TZ8PM5/ycnVQG7S6gD7S6L4+Fm14qGia+t1AUoco/cmda1ECcpvgoGOk78PFA1hbpc
zrXli+fPKReTKR4u81ovBsr80EDr2yfN094JlpuHuwFR/rlsyq4RCF/uN1Eqi5JHwQgceepY31kC
gYEAlSqnMteg13qgVoQB9piqFc/VFYg41zO3dR5QRyaU+8H3AvyPoxBrMcYbhIws+/9f7W5vD8ge
jf/RFSpzRkEDbkKf8WaYpXWVhWb2YtYAPGorgZOCN18FiFz1//X56isRxT7A/RY96CdLZO7j+7V6
QdNZJX/gCjV9nCfubHBlwJMCgYEAj/o0rJqDdG1cAeIbyXP8n3qLTaRZic8bxEvY+tlshQiTsfAf
FA3te2LM/AI2hnrD5x7HpApVTYR9Yww09jued4uRVYAGngn152CZZ/uU3lREfuUjcdG9VnNNVnYJ
0vYpu35SqmccIGXKqIUPDnkh8MBSxOYC/lLHchSSRU0DxqkCgYBdH793GzDiotKuVai70kyA05X/
mdpJJYS/PhqmdRwXlytKi073ZFO8LpChIptl9xAoobw6ERoDwMhkNd5lu2P5jPtxNK1GpNTMQHRo
LF2BSD0SQhf6c8VIcdXnjzsrVXHDwjEN/ieIsJD0sHRNjSizgp+gZXD8Gus20lba5R6/Tg==
-----END RSA PRIVATE KEY-----

Save this key into a file on your laptop (e.g., tutorial-key.pem). Note that file must only be readable by you: chmod go-r tutorial-key.pem

You can then login like this:

ssh -i tutorial-key.pem ec2-user@IPADDRESS
where IPADDRESS is the URL you claimed on the spreadsheet.

Bug in simd exercise

Hi,

I think there is a bug in simd_warp exercise:

data is a 2d View declared with the default memory layout, but it really should be declared with LeftLayout, so that memory is contiguous along extent(0).

I think the error was not seen because the input is initialized with constant data, and consequently the bug is neutral;
but if you initilialized with non trivial data, one can see that the final result of test_simd and test_scalar are not the same.

I can provide a small fix for that if needed.

AWS Cloud Instances for Santa Fe Tutorial 2020

Claim an instance first in this spreadsheet by putting your name next to an instance:

https://docs.google.com/spreadsheets/d/16l7rzkuu8IYvY-3NiY6moTi9hEz6fHhHBtwlqrXZhd0/edit?usp=sharing

Use the following private key to SSH into one of these instances once you claim an instance:

-----BEGIN RSA PRIVATE KEY-----
MIIEpgIBAAKCAQEAweKrRQpMCMNO4foT8saHy7o4spElPuSS81W5xGNNOjAfaiwQE7SjUdnC2kmf
3Uoy4Vlz5/tNqexc+9lcFKiZ2WZRnKKjL0ZDsN/q17mLUeUs6BchjP0TV+3cZ9EKoez5cRKk96bV
zmW6zAbqNZY3qlHE2sKD6LkiSzbfioCxz4JJqqnlkBk8sJnMnwRQl16zmO0+pwhcWQ+tkjxbNpd0
4em/sgW5D5VQ67kVaM5WVL7w+X5d3hDyY/2dIpMp55H1iH/TEvf2JH65uX7X95aBq2VHUy0Hp2/H
MD9TwfjkTH/eXFyLHvOmdTBtlq9cU5CFxt6uG+zs2fpLOlaBFwKftQIDAQABAoIBAQCHhx23dfou
Se/zEG8vTk2QQEzvrXv+maKLDAp91/gcy5S6D7DxRVzAk1qcYcio0/v7AB+AMm9Yb0uUFJ1EJ5Lb
n6U+u4UcP56DnhI315Amn+8jEUA3oJQL684cl8g55j97JdBA+NMNopjPk6nV6XphySS00jGI1Ri+
wM3DsDAa3zyHj9pySZCjk23fkJTS/62ww133Y4xFpbM7jGL1VSnVghqNBDuwIWCXxrnrV+j6CKRN
vE2sFR53rcelQMwX8XBNn8FHMMk8YuKxgLowP14x6hmHfrg2/JVpLKaBz4ncPb2cQ4iyVbAPNQ+k
YR85nBK5knrB0yNydIX0zctlRhelAoGBAPGaM2iUWNsfGD5eRnhHjCbI+ceAL5C7X7YW5Oo3K7sc
JXhF6Cc+XPESr3rjamVqoorjayU/xuHSDRY2FiS+P3P7llko9Z57f22iuZhfxxp7Sa1ZEpsRaBYj
o50vWeEY25/XyFATJCOzRIEtfMv9MhOqWIXkkm8OFKa0z7a8S15DAoGBAM1whBFD0Qo2lJkBLGvx
T/kMGKUk0MLvukFW4BBc6nnNCB0RoJpTdqf8FyJf9jRJL0pfUk81i7HeTPWTOdZPxBcIqXEc7xEA
lIBJM5JqYAuEk7phJdepqwPZwtZ5GvLuIHs9LwSOeg9LkDSf3jOJODzNXFx8gI55Tz16tvzD0jan
AoGBAOvdu+SUNy8s6zEwPqH8T5Ip0Nh4h3dHxkfxj+gslm/kKZyCuwNc+cWMlW5miJ+b/DWVkiva
WKJru8T8Zp/WcAIeEwjWWPww2xXAsGpWzv1GcYZfmC91TeWXQ4sYCCoeZ4NkWTX7ieOkhvOJ4fUQ
KgxS2HtWy7LJz1V03fgrWXUbAoGBAMQoWvHhPwfxdZFifXfTwfiahC2rKWn4XG9m9CqrjXcfPlAD
NMYmS3W6TpyT5BGoj28D9SOMjQYYrIMPQHpRT3pu2tsWNW6WjzSusH9s8qgMvsGHYQq7Bn92vYLr
v7+Vf44srWg8Ym+YRuj4fMHYk8n6i+YDOvzO98pMEcznbSChAoGBAL/w1NzPMtYowshKaT0xsMJX
lRaEi/s1ta5qBuvay0t/BV/is2UCVtbiyLinSI6A8urSBLRfw4tG/lbP4QUxlXo8loz1ZuSDlHHo
naBrvrInhKXJJ8j0Ja03xIWnVr6T753DGgkMMG2/RUpbZy3bDQaFJtcGU1l+cyS8Y38hSZhs
-----END RSA PRIVATE KEY-----

Save this key into a file on your laptop (e.g., tutorial-key.pem). Note that file must only be readable by you: chmod go-r tutorial-key.pem

You can then login like this:

ssh -i tutorial-key.pem ec2-user@IPADDRESS
where IPADDRESS is the address you claimed on the spreadsheet.

Intel Power8?

The 1-Day tutorial README refers to Intel Power8. Surely IBM Power8 was intended, or my former employer has branched out :-).

Kokkos June Online Training

Due to a screw up on our side we need to postpone the training by a week to June 23th - June 25th

The Kokkos team will provide a 3-day training consisting of Lectures and Hands-On exercises Tuesday June 23th through Thursday June 25th. If you plan to attend please send an email to [email protected] so we get an idea of number of attendees.

What is Kokkos?

Kokkos is a C++ Programming Model for Performance Portability developed by a team spanning some of the major HPC facilities in the world. It allows developers to implement their applications in a single source fashion, with hardware vendor agnostic programming patterns. Implemented as a C++ template meta programming library, Kokkos can be used with the primary tool chains on any HPC platforms. The model is used by many HPC applications both within and outside the US, and is the primary programming model for the efforts of the Sandia National Laboratory to make their engineering and science codes ready for exascale. At this point more than 100 projects are using Kokkos to obtain performance portability.

The tutorial will teach attendees the basics of Kokkos programming through a step-by-step sequence of lectures and hands-on exercises. Fundamental concerns of performance portable programming will be explained, and attendees will be provided with cloud instances to do the exercises on systems with GPUs and CPUs. At the end of the training, attendees will have learned how to dispatch parallel work with Kokkos, do parallel reductions, manage data, identify and manage data layout issues and expose hierarchical parallelism. The material used during the training will be available online, including the exercises and their solutions.

Contents of the Tutorial

(Not necessarily in that order)

  • Basic Kokkos Usage
    • Data Management
    • Simple Kernels
  • Basics of Performance Portable Programming for CPUs and GPUs
    • Data access patterns
  • Intermediate Kokkos Usage
    • Complex Data structures
    • Scatter Contribute patterns
    • Basic Hierarchical Parallelism
  • Advanced Kokkos Usage
    • Advanced Hierarchical Parallelism (Vectorization and Scratch pads)
    • SIMD types
    • Task based programming.
  • Kokkos Tools
    • Profiling
    • Tuning
    • Debuggging
  • GPU Performance Analysis
    • Kokkos Kernels Math Libraries

We will generally start 9am MT and go till 5pm MT with a longer break for lunch. Tuesday we will break from 11am to 1pm to allow summer students to attend a regular students event at 11 for them.

What do you need?

  • You must be able to ssh to a linux system – we will provide AWS GPU instances
  • Some C++ knowledge recommended
  • Parallel programming experience helpful
  • Sign up for the kokkosteam.slack.com channel if possible. Contact us if you can’t.

Meeting Link

Will be posted here later.

We will use a ECP Zoom.gov account, ORNL is hosting the meeting.

Problem compiling Exercices with CUDA

Dear developpers,
I am very new to Kokkos, so I beg you pardon in advance if this issue is a trivial error on my side.
I compiled Kokkos with CUDA support and tries to compile the exercies from kokkos-tutorials.
They all fail with the same kind of error:

$ cmake ../ -DKokkos_DIR=/home/th202608/codes/kokkos/master/install/lib/cmake/Kokkos/
$ make
[ 50%] Building CXX object CMakeFiles/03_Exercise.dir/exercise_3_solution.cpp.o
/home/th202608/codes/kokkos/master/install/include/Cuda/Kokkos_Cuda_Parallel.hpp(909): error: calling a __host__ function("main::[lambda(int, double &) (instance 1)]::operator ()(int, double &) const") from a __device__ function("Kokkos::Impl::ParallelReduce<    ::main   ::[lambda(int, double &) (instance 1)],  ::Kokkos::RangePolicy< ::Kokkos::Cuda > ,  ::Kokkos::InvalidType,  ::Kokkos::Cuda> ::exec_range<void>  const") is not allowed

/home/th202608/codes/kokkos/master/install/include/Cuda/Kokkos_Cuda_Parallel.hpp(909): error: identifier "main::[lambda(int, double &) (instance 1)]::operator () const" is undefined in device code

2 errors detected in the compilation of "/home/th202608/codes/kokkos/tutorials/master/src/kokkos-tutorials/Exercises/03/Solution/exercise_3_solution.cpp".
make[2]: *** [CMakeFiles/03_Exercise.dir/build.make:76: CMakeFiles/03_Exercise.dir/exercise_3_solution.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/03_Exercise.dir/all] Error 2

For the sake of completness, I am on Debian stretch, gcc 8.3.0, cuda 11.4, cmake 3.20.3
Thanks for any help.

Cloud Instances for Oakland Bootcamp

Please insert your email address in this spreadsheet:

https://docs.google.com/spreadsheets/d/1IycNldowMYoskkRVRm2B6h1V8P-DQUZ-aBvZm86NLiE/edit?usp=sharing

Use the following private key to SSH into one of these instances once you claim an instance:

-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAzCFYf4M2l8YHMQqbkrEifcn6BFtVtERskjKoSnpnO+ft3HDzZ3vv0XJuNB7H
7BFEH+Nymn7sJmpGQeGuyVN0eLyHSbYHoXtQwABfNTEMHnJgMtMRkRaBmC5lo58h9/UBaEWfagm/
J2Ncqo71Dr90b/m3G2ZgEq76GPseRM88kRevwSCd1IR8gy42gvV//8HmkIbEgjfw54TG+VCVA6Sb
vkxDGqRlu8+BTVxIjZ/e7iUstyAUHLxPq9k+/pUMSyYl2jGRaZbuIaWgUWCVNRzCbqdbbNlu1Fc1
om0q1yc94gBQNf3U52QbVAYdyJ+xGN8Fygy/iiVJBU+rlvw2wUCVEwIDAQABAoIBAQCj2PAsCao8
UNtc5eLR8BR7Wy+vZ5B3TaTIBJlIjs9mKlemZZM6MSThvTPv6fUW6xT/c5V9pPrwKsWSBBBD0RTg
BJOi+tVNLKo4MxQ4odHUboIAyaKEDsie2j8DAqxFVwd2Jsw6VPB2MS8kR/Mzj0Fqz8nF2HqtBH4C
py44lQ9MdYMYH5tsjLqy0ha79r0U1Ny5jq6Iu93CfiHMQBUTpr4xbaL/LUbsVDtoynaZtRbfD/up
hqi0pnpRIJs2r17zN8UhOb75lWSFuRQVLFtAesrslNebCQILmsirDDA18gzuSTYfbMcj0yMD4/qc
palcihCY9K72ICCVEAYfCr84mc7hAoGBAPLzr33XGTKQVFaEyALwI9XQWDmkrtU2GX4oFk6S4rg1
ZwsRBw19pdn0CPgnIylpIrY/paY9xMcn3pfJcMbrGqIqx1GLE+KgV2b8n09a8J/WG09KowJe+nra
Z4gMETdWVImVz+PoXmMUxUdll7Gae6acFxmZC2m45/w7/rq2JnSPAoGBANcX6AvSedVyFA1H3ps8
V2BHH9hTAJ5WtQVf8dXAfedjYoVQfV74ZmO35xDDtlh9Z2a2EftuupH1ZPnTWbKgWRrf1TwYk+lx
jLOgUhRxZTaDSoX0Jw9AVQ8ArxfBXISlYBvYeya9SxpXjU7XNEYbOupeHNqBn2C0Nx7rt5cB2cE9
AoGASbVK2cfneiK1o6YXNGT8ykKycZKYBFGsfEzXL7F6nV5+S6o31Iz5Q125Vugwz8B46of2zq/Q
wodDDhPsZj0v0GFgJUonl0sEGVetUZsKg8Omd3Dycaa1IY6feHQIyRwk+7T65G88K51CmP2mfxia
SRr0Gy0GfGW/5BOjnavjkNsCgYBZXod9kgApHXMTaY8mdNXhHOwwV5xkLaadCxZSN96YK4Ud2ymc
Mh1oxVpubsLu1XwHAxNJouJGDu3bl2MngtRDBEl25MdgMVvCrpQsBkmFctud+KnZ/mLZDvGxLxgf
zQ63wyS4HeJ8mXAPF/+SOXIrOttGNqFf7sEQSeRIC+7MCQKBgGF4ZwDpnQQryYE1JX3QBjNmaZNC
jM6p+dnEZycQ2EoAhrd17J/t+KlI3a5NjdfoP2GqAq9ZoHc023D/QTwmue1uVO2m0TZLwStdh9wM
fwm8E1ms4aFDqtv1TVZE3o1aPI2wkdIVRKJizX2VeZSTP7F9ancYUf5eIkODfVTsld3U
-----END RSA PRIVATE KEY-----

Save this key into a file on your laptop (e.g., tutorial-key.pem). Note that file must only be readable by you: chmod go-r tutorial-key.pem

You can then login like this:

ssh -i tutorial-key.pem ec2-user@IPADDRESS

where IPADDRESS is the URL you claimed on the spreadsheet.

`numberOfTeams` in TeamPolicy related slides

In the slides to the current tutorials (e.g., https://github.com/kokkos/kokkos-tutorials/blob/master/Intro-Full/Slides/KokkosTutorial_PACT19.pdf, p. 101ff)
the constructor to TeamPolicy is described as:

TeamPolicy < ExecutionSpace >( numberOfTeams , teamSize )

while on the official kokkos wiki the constructor looks like the following (https://github.com/kokkos/kokkos/wiki/Kokkos::TeamPolicy):

Kokkos::TeamPolicy<>( league_size, team_size [, vector_length])

In my opinion the name numberOfTeams is very misleading, as it appears to be dependent on the teamSize, which it is not. It should be renamed to league_size.

The calculation of work on page 101 might also need an update.

ECP Annualmeeting 2022 - Kokkos Tutorial AWS Instances

Please insert your email address in this spreadsheet:

https://docs.google.com/spreadsheets/d/1Sz-tHJ8dLz8cJ-GJZ0q0vbIyza_Cb3CeqoZirpLBIOQ/edit?usp=drivesdk

Use the following private key to SSH into one of these instances once you claim an instance:

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAj/4JOkv/opJXa9dp9lr5F+i+9uvAkFaDvmSLjCXd0UF+D/US
4r4OosjYMrJy+OPeTp9Vss/8mVxH/nkT0FW6of1fYTmyst1tZraeYJyFhlEGZrMp
ceoMgk9s7L6c/6Q28/51I530Pj+IBOtszcUr73hBEEz87Vlb/MGSJQJ6whCwaEQH
AMKpyAs4Fx0kU/AuI1KNf7A/61ATwjPBLSHigivyBDhX++w+YHsmGmrq48agpdcV
fHFAFhekgTmRXRaBcTyWjKxfVTZD7rrGo1DaFA2hTElYaLGrk0Ql386fq3+TEGIW
YwXP9OlV/tiRm/C7OQgvTjxyuUfEQ4sfNLcYpwIDAQABAoIBAGZhlCIVQ3BOaUZO
ZhM6X/52CMH8onB+czH+v5Ioom1VCdNCx+jchf+MmtyBMWpyavCwLfj0FYDdsnrn
kAUDz626QAUbR0oSUuVDV50N7YqxNcH0BbXvWnGVE7fJWEwUcNZPyO5IMw/HkGkf
E7/DQBgHAwwaEYSZkuRGpikWeD5fGN4UQa99FgRCGqFlqCyErJ37Y8wG3HiY49co
yfCQbuiCJOZPcDQHnY0Y8YWGJE2NZSfIaSZUhy2tYUlL+3MqKfVTJVj2qKT3+AtG
YT8G0j85EjagHNQb2ep9jjWHJBtFHY08/Tx3FXdL1z+L3XgiNdDR+0KLBKAY9Hrw
2oBVIVECgYEA1X1+cw+cnY1l2xcWODHpQBz4H5gk1/gTuwjivDImADpP688/Hz4E
T8tha48XBeP34ushyGZ2mBiEL2HwQIr5DK4gQTu7x0sKoebbxP7Pw9RcKaJAq/nu
Q6HewgGkIDDHlo9mcvnJtZGZgrZ7h9pxiJtJIYX18Yv18h2EyZMEhv0CgYEArKnw
VPk1k3IwBZi1h1TtjZ21FASlpxZ8yVMSzTjPH5NIlb8TI3kGlvPSZNEDTSygrV+R
iAe9sFFohg+1wllrHwosITZfLNuXNPjWd1hQ3ciGh/BA+h0fKc5keWtndYtY4ln2
iZfdR87+ey0vW2ppM2miHLCKaZo98O+0qrDq2XMCgYBioCr+dMPhdSUM5cl6BHTB
DaEC14KN0ykqSpyUXIZ5rHandYKvqDLNuiMzUVNNgVdPGVjt/4fiE9FdIl2fM5SC
ax6zhCjnlJ9A1CnLA/xvd3dsNGy0Bi4wSGNkNOXhiSdrQqwNiZ/JpY3JeQvwYtX4
SeSq+/v2rrXcOA7UIHsC8QKBgQChsth2y5goCHT+mL/QCHIcAMi3AY8dBotAg4MF
HCGk4WrFilbjDpFkRt0PO0rLOHMVSn3hFdbIS8UGX6oJY3JVdFJVnDTPrqpRmoRG
6jd5LDUJE6/WS/WGUlp392TBiQlpmXSv8L/zYt+h/XPvOZ1h35hJI+/L6/38KJBa
liqqDwKBgQDFkgVfJ3w3ULD+FYZR2+Zy2HFxAcm3QA2ijzqdxVEOEIflldcCFy2V
ZVi5U9egB607OrCVLy4InDyLb2lg6iBOoEL5eyX3bHgNHcgK3f27FqpX3JCsx3Bj
1rlopIVEPCXWhamijRRC7WdXYPQ/gLpEwm16cIDazvbLuOhs5q2lJw==
-----END RSA PRIVATE KEY-----

Save this key into a file on your laptop (e.g., tutorial-key.pem). Note that file must only be readable by you: chmod 400 tutorial-key.pem

You can then login like this:

ssh -i tutorial-key.pem ubuntu@IPADDRESS

where IPADDRESS is the URL you claimed on the spreadsheet.

Exercise 1, illegal instruction (core dumped)

Hi,
I try to run the exercise 01 by my desktop, and the result is correct. However, I cannot get the timer and bandwidth. the results give

Total size S = 4194304 N = 4096 M = 1024
Computed result for 4096 x 1024 is 4194304.000000
Illegal instruction (core dumped)

I also try the given solution, same issue.

Slack inaccessible?

The readme states that we can use kokkosteam.slack.com for Kokkos questions, but that it looks like an invite only slack (unless your email is under some specific DOE/military/industry domains).

Can you open that up to the public?
Slack is a lot better than filing issues if we have questions.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.