@@ -38,7 +38,6 @@ GreedyOutput ROCmDevice::sampleGreedy(const GreedyParams& params) {
3838 auto & top_k = params.top_k ;
3939 auto & top_p = params.top_p ;
4040 auto & temperature = params.temperature ;
41- // auto& random_seed = params.random_seed;
4241 ROCM_CHECK_VALUE (top_k.size () == batch_size, " top_k.size() != batch_size" );
4342 ROCM_CHECK_VALUE (top_p.size () == batch_size, " top_p.size() != batch_size" );
4443 ROCM_CHECK_VALUE (temperature.size () == batch_size, " temperature.size() != batch_size" );
@@ -116,12 +115,14 @@ GreedyOutput ROCmDevice::sampleGreedy(const GreedyParams& params) {
116115 }
117116
118117 bool deterministic = true ;
119- auto seed_h = allocateBuffer ({DataType::TYPE_UINT64 , {batch_size}, AllocationType::HOST});
120- auto offset_h = allocateBuffer ({DataType::TYPE_UINT64 , {batch_size}, AllocationType::HOST});
118+ auto seed_h = allocateBuffer ({DataType::TYPE_INT64 , {batch_size}, AllocationType::HOST});
119+ auto offset_h = allocateBuffer ({DataType::TYPE_INT64 , {batch_size}, AllocationType::HOST});
121120 for (int i = 0 ; i < batch_size; i++) {
122- std::tie (seed_h-> data < uint64_t >()[i], offset_h-> data < uint64_t >()[i]) = params.generator [i].defined () ?
121+ auto [sd, ofst] = params.generator [i].defined () ?
123122 get_seed_and_offset (batch_size * 32 , params.generator [i]) :
124123 std::make_pair (0ULL , 0ULL );
124+ seed_h->data <int64_t >()[i] = static_cast <int64_t >(sd);
125+ offset_h->data <int64_t >()[i] = static_cast <int64_t >(ofst);
125126 }
126127 auto seed = Buffer2torchTensor (clone ({*seed_h, AllocationType::DEVICE}), false );
127128 auto offset = Buffer2torchTensor (clone ({*offset_h, AllocationType::DEVICE}), false );
0 commit comments