Commit b6786993 authored by Shucai Xiao's avatar Shucai Xiao
Browse files

clang format

parent ccdacf44
...@@ -15,10 +15,10 @@ namespace device { ...@@ -15,10 +15,10 @@ namespace device {
void logsoftmax(hipStream_t stream, const argument& result, const argument& arg, int axis) void logsoftmax(hipStream_t stream, const argument& result, const argument& arg, int axis)
{ {
auto lens = result.get_shape().lens(); auto lens = result.get_shape().lens();
auto batch_item_num = lens[axis]; auto batch_item_num = lens[axis];
auto batch_lens = lens; auto batch_lens = lens;
batch_lens[axis] = 1; batch_lens[axis] = 1;
migraphx::shape batch_shape{result.get_shape().type(), batch_lens}; migraphx::shape batch_shape{result.get_shape().type(), batch_lens};
visit_all(result, arg)([&](auto output, auto input) { visit_all(result, arg)([&](auto output, auto input) {
...@@ -46,7 +46,7 @@ void logsoftmax(hipStream_t stream, const argument& result, const argument& arg, ...@@ -46,7 +46,7 @@ void logsoftmax(hipStream_t stream, const argument& result, const argument& arg,
auto batch_idx = desc_batch.multi(blk_idx); auto batch_idx = desc_batch.multi(blk_idx);
auto data_idx = batch_idx; auto data_idx = batch_idx;
// load data to lds and compute the batch max // load data to lds and compute the batch max
size_t remaining_item_num = batch_item_num; size_t remaining_item_num = batch_item_num;
size_t thread_num = (batch_item_num + block_size - 1) / block_size * block_size; size_t thread_num = (batch_item_num + block_size - 1) / block_size * block_size;
lds_data[block_size] = input_ptr[0]; lds_data[block_size] = input_ptr[0];
for(size_t i = thr_idx; i < thread_num; i += block_size) for(size_t i = thr_idx; i < thread_num; i += block_size)
...@@ -58,7 +58,8 @@ void logsoftmax(hipStream_t stream, const argument& result, const argument& arg, ...@@ -58,7 +58,8 @@ void logsoftmax(hipStream_t stream, const argument& result, const argument& arg,
} }
__syncthreads(); __syncthreads();
auto item_num = (remaining_item_num > block_size) ? block_size : remaining_item_num; auto item_num =
(remaining_item_num > block_size) ? block_size : remaining_item_num;
reduce_max(lds_data, block_size, thr_idx, item_num); reduce_max(lds_data, block_size, thr_idx, item_num);
remaining_item_num -= block_size; remaining_item_num -= block_size;
...@@ -67,28 +68,27 @@ void logsoftmax(hipStream_t stream, const argument& result, const argument& arg, ...@@ -67,28 +68,27 @@ void logsoftmax(hipStream_t stream, const argument& result, const argument& arg,
auto batch_max = lds_data[block_size]; auto batch_max = lds_data[block_size];
__syncthreads(); __syncthreads();
lds_data[block_size] = 0; lds_data[block_size] = 0;
remaining_item_num = batch_item_num; remaining_item_num = batch_item_num;
for(size_t i = thr_idx; i < thread_num; i += block_size) for(size_t i = thr_idx; i < thread_num; i += block_size)
{ {
if(i < batch_item_num) if(i < batch_item_num)
{ {
data_idx[axis] = i; data_idx[axis] = i;
lds_data[thr_idx] = lds_data[thr_idx] = input_ptr[desc_data.linear(data_idx)] - batch_max;
input_ptr[desc_data.linear(data_idx)] - batch_max;
lds_data[thr_idx] = ::exp(to_hip_type(lds_data[thr_idx])); lds_data[thr_idx] = ::exp(to_hip_type(lds_data[thr_idx]));
} }
__syncthreads(); __syncthreads();
auto item_num = (remaining_item_num > block_size) ? block_size : remaining_item_num; auto item_num =
(remaining_item_num > block_size) ? block_size : remaining_item_num;
reduce_sum(lds_data, block_size, thr_idx, item_num); reduce_sum(lds_data, block_size, thr_idx, item_num);
remaining_item_num -= block_size; remaining_item_num -= block_size;
} }
auto log_batch_sum = auto log_batch_sum = ::log(to_hip_type(lds_data[block_size])) + batch_max;
::log(to_hip_type(lds_data[block_size])) + batch_max;
for(size_t i = thr_idx; i < batch_item_num; i += block_size) for(size_t i = thr_idx; i < batch_item_num; i += block_size)
{ {
......
...@@ -59,7 +59,8 @@ void softmax(hipStream_t stream, const argument& result, const argument& arg, in ...@@ -59,7 +59,8 @@ void softmax(hipStream_t stream, const argument& result, const argument& arg, in
__syncthreads(); __syncthreads();
auto item_num = (remaining_item_num > block_size) ? block_size : remaining_item_num; auto item_num =
(remaining_item_num > block_size) ? block_size : remaining_item_num;
reduce_max<type>(lds_data, block_size, thr_idx, item_num); reduce_max<type>(lds_data, block_size, thr_idx, item_num);
remaining_item_num -= block_size; remaining_item_num -= block_size;
...@@ -81,7 +82,8 @@ void softmax(hipStream_t stream, const argument& result, const argument& arg, in ...@@ -81,7 +82,8 @@ void softmax(hipStream_t stream, const argument& result, const argument& arg, in
__syncthreads(); __syncthreads();
auto item_num = (remaining_item_num > block_size) ? block_size : remaining_item_num; auto item_num =
(remaining_item_num > block_size) ? block_size : remaining_item_num;
reduce_sum<type>(lds_data, block_size, thr_idx, item_num); reduce_sum<type>(lds_data, block_size, thr_idx, item_num);
remaining_item_num -= block_size; remaining_item_num -= block_size;
......
...@@ -70,4 +70,3 @@ __device__ void reduce_sum(T* data_ptr, size_t block_size, size_t thr_idx, size_ ...@@ -70,4 +70,3 @@ __device__ void reduce_sum(T* data_ptr, size_t block_size, size_t thr_idx, size_
} // namespace migraphx } // namespace migraphx
#endif #endif
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment