@@ -108,9 +108,7 @@ SoftmaxLayer::SoftmaxLayer(LangHandle *langHandle, Timer* timer,
108
108
void SoftmaxLayer::doFw () {
109
109
#if defined(USE_CUBLAS)
110
110
111
- langHandle_->getSyclQueue ()->submit ([&](sycl::handler &cgh) {
112
- // auto d_A = b_A.get_access<sycl::access::mode::read_write>(cgh);
113
- cgh.host_task ([=](sycl::interop_handle ih) {
111
+ SYCL::ExecNativeCommand (*langHandle_->getSyclQueue (), [=](sycl::interop_handle ih) {
114
112
cuCtxSetCurrent (ih.get_native_context <sycl::backend::ext_oneapi_cuda>());
115
113
cublasSetStream (*(langHandle_->getCublasHandle ()), ih.get_native_queue <sycl::backend::ext_oneapi_cuda>());
116
114
@@ -129,14 +127,9 @@ void SoftmaxLayer::doFw() {
129
127
d_output_));
130
128
// cublasDestroy(handle);
131
129
// cudaStreamSynchronize(cudaStreamHandle);
132
- assertDevApiInvar (cudaDeviceSynchronize ());
133
- });
134
- });
135
- langHandle_->getSyclQueue ()->wait_and_throw ();
130
+ }, []{assertDevApiInvar (cudaDeviceSynchronize ())});
136
131
#elif defined(USE_ROCBLAS)
137
- langHandle_->getSyclQueue ()->submit ([&](sycl::handler &cgh) {
138
- // auto d_A = b_A.get_access<sycl::access::mode::read_write>(cgh);
139
- cgh.host_task ([=](sycl::interop_handle ih) {
132
+ SYCL::ExecNativeCommand (*langHandle_->getSyclQueue (), [=](sycl::interop_handle ih) {
140
133
// cuCtxSetCurrent(ih.get_native_context<sycl::backend::ext_oneapi_cuda>());
141
134
// cublasSetStream(*(langHandle_->getCublasHandle()), ih.get_native_queue<sycl::backend::ext_oneapi_cuda>());
142
135
@@ -153,10 +146,7 @@ void SoftmaxLayer::doFw() {
153
146
d_output_));
154
147
// cublasDestroy(handle);
155
148
// cudaStreamSynchronize(cudaStreamHandle);
156
- assertDevApiInvar (hipDeviceSynchronize ());
157
- });
158
- });
159
- langHandle_->getSyclQueue ()->wait_and_throw ();
149
+ }, []{assertDevApiInvar (hipDeviceSynchronize ())});
160
150
#else
161
151
std::unordered_map<int , memory> softmax_args;
162
152
softmax_args.insert ({DNNL_ARG_SRC, src_mem});
@@ -170,9 +160,7 @@ void SoftmaxLayer::doFw() {
170
160
void SoftmaxLayer::doBw () {
171
161
#if defined(USE_CUBLAS)
172
162
173
- langHandle_->getSyclQueue ()->submit ([&](sycl::handler &cgh) {
174
- // auto d_A = b_A.get_access<sycl::access::mode::read_write>(cgh);
175
- cgh.host_task ([=](sycl::interop_handle ih) {
163
+ SYCL::ExecNativeCommand (*langHandle_->getSyclQueue (), [=](sycl::interop_handle ih) {
176
164
cuCtxSetCurrent (ih.get_native_context <sycl::backend::ext_oneapi_cuda>());
177
165
cublasSetStream (*(langHandle_->getCublasHandle ()), ih.get_native_queue <sycl::backend::ext_oneapi_cuda>());
178
166
@@ -193,14 +181,9 @@ void SoftmaxLayer::doBw() {
193
181
d_d_input_));
194
182
// cublasDestroy(handle);
195
183
// cudaStreamSynchronize(cudaStreamHandle);
196
- assertDevApiInvar (cudaDeviceSynchronize ());
197
- });
198
- });
199
- langHandle_->getSyclQueue ()->wait_and_throw ();
184
+ }, []{assertDevApiInvar (cudaDeviceSynchronize ())});
200
185
#elif defined(USE_ROCBLAS)
201
- langHandle_->getSyclQueue ()->submit ([&](sycl::handler &cgh) {
202
- // auto d_A = b_A.get_access<sycl::access::mode::read_write>(cgh);
203
- cgh.host_task ([=](sycl::interop_handle ih) {
186
+ SYCL::ExecNativeCommand (*langHandle_->getSyclQueue (), [=](sycl::interop_handle ih) {
204
187
// cuCtxSetCurrent(ih.get_native_context<sycl::backend::ext_oneapi_cuda>());
205
188
// cublasSetStream(*(langHandle_->getCublasHandle()), ih.get_native_queue<sycl::backend::ext_oneapi_cuda>());
206
189
@@ -219,10 +202,7 @@ void SoftmaxLayer::doBw() {
219
202
d_d_input_));
220
203
// cublasDestroy(handle);
221
204
// cudaStreamSynchronize(cudaStreamHandle);
222
- assertDevApiInvar (hipDeviceSynchronize ());
223
- });
224
- });
225
- langHandle_->getSyclQueue ()->wait_and_throw ();
205
+ }, []{assertDevApiInvar (hipDeviceSynchronize ())});
226
206
#else
227
207
std::unordered_map<int , memory> softmax_args;
228
208
softmax_args.insert ({DNNL_ARG_SRC, src_mem});
@@ -237,4 +217,4 @@ void SoftmaxLayer::doBw() {
237
217
238
218
SoftmaxLayer::~SoftmaxLayer () {
239
219
240
- }
220
+ }
0 commit comments