[Trilinos-Users] General questions about kokkos

Heroux, Mike MHeroux at CSBSJU.EDU
Tue Sep 23 08:41:51 MDT 2014


Magma support does not have a concrete delivery date at this point.  We
need a specific customer driver for it that has higher priority than other
activities.  This has not emerged yet.

Mike

On 9/19/14, 11:38 PM, "Daniel Holladay" <dholladay00 at gmail.com> wrote:

>Thanks for the reply. I think that these portable high performance data
>structures are very nice and I hope I can use them in my project.
>
>The SYCL standard is not in its final state yet and so even if that was a
>priority, it would not be feasible yet. Although, I think given the
>portability of opencl to xeon phi, intel multicore, nvidia gpus, and amd
>gpus makes it a very good candidate for high portability to many
>different architectures without having to use different libraries/tools
>(openmp, tbb, openacc, cuda, intel xeon phi pragmas?, ...). I know that
>not all of these libraries have to be used to for portability, but a
>subset of them do, and as I understand it, opencl could be used in place
>of these, although it would probably still require some architecture
>specific optimization, but with things like sycl, this could be done
>under the hood (but so could implementing all of the above tools).
>
>What is the time table for getting views to work with magma? Is there no
>easy way of getting at the underlying data contained in a view so that it
>could be passed into a blas/magma function?
>
>Thanks,
>Daniel Holladay
>
>
>On Sep 19, 2014, at 6:47 PM, Heroux, Mike <MHeroux at CSBSJU.EDU> wrote:
>
>> Daniel,
>> 
>> Sorry for the late reply.
>> 
>> Here is some response to your questions:
>> 
>>  *   Kokkos provides a multi-dimensional array container capability.
>>The user specifies the logical array dimensions, but these dimensions do
>>not enforce a particular storage layout.  In fact, Kokkos¹ separation of
>>³physics i,j,k² from ³storage i,j,k² is very important as it gives
>>Kokkos latitude in determining the physical data layout for best
>>performance on a particular target processor type or particular usage
>>situation.  For example, the physical layout on a GPU would be different
>>from a multicore CPU.  Also, the layout for using Kokkos with PLASMA or
>>MAGMA should be compatible with those two libraries (although this
>>functionality not available right now).
>>  *   Kokkos does not support OpenCL at this point.  Although this is
>>desirable in general, OpenCL inability to handle C++ template
>>meta-programming expressions makes it a non-starter for Kokkos.  In
>>principle, SYCL could help with this issue, but use of OpenCL is not a
>>high priority for our user base right now, so it is not something being
>>pursued at the moment.
>>  *   As I mentioned, Kokkos is not hooked up to Plasma or Magma right
>>now, but this is important to us.  We need to use Kokkos in Trilinos and
>>in turn need the functionality of Plasma and Magma as BLAS replacement
>>libraries.
>>  *   Regarding variable block sizes, you could have an array of Kokkos
>>views where each view varies in size.  Whether or not this would be
>>effective depends on how big the block tridiagonal entries are.  Kokkos
>>has tiled views, but they have to be the same size.
>> 
>> I hope this is helpful.
>> 
>> Mike
>> 
>> From: Daniel Holladay
>><dholladay00 at gmail.com<mailto:dholladay00 at gmail.com>>
>> Date: Monday, September 15, 2014 at 12:07 PM
>> To: 
>>"trilinos-users at software.sandia.gov<mailto:trilinos-users at software.sandia
>>.gov>" 
>><trilinos-users at software.sandia.gov<mailto:trilinos-users at software.sandia
>>.gov>>
>> Subject: [Trilinos-Users] General questions about kokkos
>> 
>> Hello,
>> 
>> I am a Ph.D. student in the nuclear engineering department at Texas A&M
>> University and I am working on a parallel block tridiagonal solver that
>> is portable to GPUs (via OpenCL or CUDA) and the intel xeon phi, and
>>potentially other multi and many core architectures. I am
>> currently looking at using MAGMA for the block matrix operations (if you
>> know of a library/package that already does this, I would be interested
>> in that as well) and I am considering using kokkos to store matrix and
>>array data.
>> 
>> I heard about kokkos this last week from a former graduate student (who
>>now
>> works at sandia) in town for a career fair. The views look like they
>> could be very useful for my project.
>> 
>> I currently have my block tridiagonal matrix data stored in 3 three
>> dimensional arrays, for example a[i][j][k] is the i-th block row, the
>> j-th row within block row i, and the k-th column in block row i. Every
>> block matrix can in principle be a different size. Is there a way to
>> store this in a single (3D) view, or would it require an array of (2D)
>>views?
>> 
>> Also, I noticed that kokkos and the SYCL opencl standard
>> (http://www.codeplay.com/portal/sycl-tutorial-1-the-vector-addition)
>>look
>> very similar, are you looking to implement the sycl standard in the
>> future?
>> 
>> Thanks in advance for taking the time to read and consider these
>> questions.
>> 
>> -Daniel Holladay
>> 
>> 
>



More information about the Trilinos-Users mailing list