Skip to content

Cudastf #794

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 41 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
d6dc01d
Update build config to pull CUDASTF
sidelnik Nov 4, 2024
245b20f
remove const expr
sidelnik Nov 4, 2024
9b35ec8
Updates to get basic cudastf functionality working with matx
sidelnik Nov 5, 2024
7d298d4
move to void_interface
sidelnik Nov 5, 2024
154b3f9
add stf executor
sidelnik Nov 5, 2024
c8ef988
support for cgsolve operator and a few examples
sidelnik Nov 5, 2024
52b18c9
make the sync() that is part of stfexecutor call ctx.task_fence()
sidelnik Dec 3, 2024
d726b10
fix typo
sidelnik Dec 3, 2024
5e7576c
Added test case
sidelnik Dec 17, 2024
1373699
Fixes to the sync
sidelnik Dec 17, 2024
92e7204
add support for cgsolve
sidelnik Dec 17, 2024
a608f3f
update to the simple radar code
sidelnik Dec 17, 2024
b062577
minor typo fix
sidelnik Dec 17, 2024
bbf9abc
update version of stf
sidelnik Dec 19, 2024
3e831ea
cleanup constexpr case for stfexecutor
sidelnik Dec 19, 2024
702fe79
cleanup constexpr case for stfexecutor
sidelnik Dec 19, 2024
5bfe21e
add conditional support for cudagraph to the stf executor
sidelnik Dec 19, 2024
f407256
update to latest cudastf
sidelnik Jan 9, 2025
221599c
switch to use logical token
sidelnik Jan 9, 2025
7a5bb6c
update parameters for radar code
sidelnik Jan 9, 2025
0c2432f
update to radar code to work with command line args
sidelnik Jan 9, 2025
3ae267b
cleanup to support different executor
sidelnik Jan 9, 2025
6a75794
cleanup radar code to emit stf and cuda versions
sidelnik Jan 24, 2025
f1facca
test script that runs simple radar with different input sizes. output…
sidelnik Jan 24, 2025
0199e75
enable cuda graphs as a command line argument enableGraphs
sidelnik Jan 24, 2025
39b16f4
add support for the random/randomOp generator
sidelnik Jan 27, 2025
9b7c4b0
get the basic spectrogram code working with stf
sidelnik Jan 27, 2025
f9e09f1
get spectrogram cudagraph code working with stf
sidelnik Jan 27, 2025
6c9a791
add assert in the case stream capture is turned on if creating a plan
sidelnik Feb 10, 2025
a1efd1c
Merge branch 'cudastf' into cudastf_latest
sidelnik Mar 19, 2025
6437eab
Merge pull request #2 from sidelnik/cudastf_latest
sidelnik Mar 19, 2025
bbb9aae
Apps using matx with stf should get these flags
caugonnet Mar 24, 2025
e13c9b6
fix constructor
caugonnet Mar 24, 2025
7244399
fix typo/bug
sidelnik Apr 21, 2025
66f6850
update to example code to fix compile error
sidelnik Apr 21, 2025
89e2a43
update to example code to fix compile error
sidelnik Apr 21, 2025
973886b
update test script for radar code
sidelnik Apr 21, 2025
92885e7
temp fix to the allocator dtor
sidelnik Apr 21, 2025
8607840
remove warning to work with latest stf
sidelnik Apr 21, 2025
14e0985
replace logical token with token
sidelnik Apr 21, 2025
92e04d5
update version to use cccl from main
sidelnik Apr 21, 2025
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
move to void_interface
  • Loading branch information
sidelnik committed Nov 5, 2024
commit 7d298d405f4937af5657f4d79079924b18b15b38
7 changes: 2 additions & 5 deletions include/matx/core/tensor.h
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ class tensor_t : public detail::tensor_impl_t<T,RANK,Desc> {
using stride_container = typename Desc::stride_container;
using desc_type = Desc; ///< Descriptor type trait
using self_type = tensor_t<T, RANK, Storage, Desc>;
using stf_logicaldata_type = typename cuda::experimental::stf::logical_data<cuda::experimental::stf::slice<T, 1>>;
using stf_logicaldata_type = typename cuda::experimental::stf::logical_data<cuda::experimental::stf::void_interface>;

/**
* @brief Construct a new 0-D tensor t object
Expand Down Expand Up @@ -816,10 +816,7 @@ class tensor_t : public detail::tensor_impl_t<T,RANK,Desc> {

// Copy descriptor and call ctor with shape
Desc new_desc{this->desc_.Shape(), std::move(strides)};
printf("******* FIX ASAP: tensor.h: 819 ****************\n");
return tensor_t<Type, RANK, Storage, Desc>{storage_, std::move(new_desc), data};
/* Albert : TODO. We're creating a logical data of with the type being complex and not real. Seems to be incompatible with the approach we're taking in creating an associated logical data. Will be fixed once we move to void_interace */
//return tensor_t<Type, RANK, Storage, Desc>{storage_, std::move(new_desc), data, this->stf_ldata_};
return tensor_t<Type, RANK, Storage, Desc>{storage_, std::move(new_desc), data, this->stf_ldata_};
}

/**
Expand Down
11 changes: 3 additions & 8 deletions include/matx/core/tensor_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,10 +81,7 @@ class tensor_impl_t {
using stride_type = typename Desc::stride_type;
using matxoplvalue = bool;
using self_type = tensor_impl_t<T, RANK, Desc>;

/* TODO: convert to void_interface for the logical data.*/
using stf_logicaldata_type = typename cuda::experimental::stf::logical_data<cuda::experimental::stf::slice<T, 1>>;
//using stf_logicaldata_type = typename cudastf::logical_data<cudastf::void_interface>;
using stf_logicaldata_type = typename cuda::experimental::stf::logical_data<cuda::experimental::stf::void_interface>;

// Type specifier for signaling this is a matx operation
using matxop = bool;
Expand Down Expand Up @@ -1153,10 +1150,8 @@ IGNORE_WARNING_POP_GCC
place = getDataPlace(Data());
#endif

/* TODO: Use void_interface for logical data */
*stf_ldata_ = ctx.logical_data(cuda::experimental::stf::make_slice(Data(), 1));
//*stf_ldata_ = ctx.logical_data(cudastf::shape_of<cudastf::void_interface>());
stf_ldata_->value().set_write_back(false);
*stf_ldata_ = ctx.logical_data(cuda::experimental::stf::void_interface());
Copy link

@caugonnet caugonnet Nov 14, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some comment would be welcome here :) This is creating a logical data with a void data interface because we don't rely on CUDASTF for transfers/allocation, it's just for sync.

Putting a value here, and not a shape of a void interface means we don't have to issue a "write" task in CUDASTF

//stf_ldata_->value().set_write_back(false);
stf_ldata_->value().set_symbol(this->str());
}
}
Expand Down