Software Archive
Read-only legacy content
17061 Discussions

Transfer matrix; specify destination location

Paul_S_
Beginner
552 Views

Hello,

is it possible to copy a matrix from the xeon phi to the host that has a leading dimension which is not equal to the number of rows (i.e., similar cudaMemcpy2D).

Furthermore, is it possible specify the destination location for a MIC-to-Host data transfer (i.e., similar to cudaMemcpy)?

Thanks,

Paul

0 Kudos
4 Replies
Kevin_D_Intel
Employee
552 Views

I believe the INTO() modifier used with the OUT data movement clause may offer support similar to cudaMemcpy for moving data from the Xeon Phi™ to the host but this does not allow/support the non-matching shapes like cudaMemcpy2D. The discussion on Moving Data from One Variable to Another in the User’s Guide offers some additional details.

I will ask others who are more knowledgeable about CUDA than me about this too.

0 Kudos
Paul_S_
Beginner
552 Views

as always: thank you.

The into modifier definitively helps, but a 2D copy would be preferable.

On a related note, is it possible to use peer-to-peer communication in the offload model? I need to add two arrays together (one on mic:0 and the other on mic:1).

0 Kudos
Kevin_D_Intel
Employee
552 Views

Pardon the delayed reply. We do not support peer-to-peer (between cards). All data transfer must route through the host.

There is a feature planned for the next major release later this year (2015) that Development indicates offers capabilities for target allocation and data transfer using a 2D shape that is equivalent to cudaMemcpy2D.

You may already be aware of these new features in our latest IPS XE 2015 release, but I also wanted mention the article on Data transfer of an "array of pointers" using the Intel® Language Extensions for Offload (LEO) for the Intel® Xeon Phi™ coprocessor.

0 Kudos
Paul_S_
Beginner
552 Views

I'm certainly looking forward to see this feature being implemented.

Thanks,

Paul

0 Kudos
Reply