File tree 1 file changed +24
-0
lines changed
dipu/torch_dipu/csrc_dipu/diopirt
1 file changed +24
-0
lines changed Original file line number Diff line number Diff line change @@ -183,6 +183,30 @@ DIOPI_RT_API diopiError_t diopiGeneratorSetState(
183
183
return diopiSuccess;
184
184
}
185
185
186
+ DIOPI_RT_API diopiError_t diopiGeneratorGetSeedAndOffset (
187
+ diopiGeneratorHandle_t th, uint64_t & seed, uint64_t & offset) {
188
+ auto generator = reinterpret_cast <at::Generator*>(th);
189
+ auto gen_impl = at::check_generator<dipu::DIPUGeneratorImpl>(*generator);
190
+ {
191
+ offset = gen_impl->get_offset ();
192
+ seed = gen_impl->current_seed ();
193
+ }
194
+
195
+ return diopiSuccess;
196
+ }
197
+
198
+ DIOPI_RT_API diopiError_t diopiGeneratorSetSeedAndOffset (
199
+ diopiGeneratorHandle_t th, uint64_t seed, uint64_t offset) {
200
+ auto generator = reinterpret_cast <at::Generator*>(th);
201
+ auto gen_impl = at::check_generator<dipu::DIPUGeneratorImpl>(*generator);
202
+ {
203
+ gen_impl->set_offset (offset);
204
+ gen_impl->set_current_seed (seed);
205
+ }
206
+
207
+ return diopiSuccess;
208
+ }
209
+
186
210
DIOPI_RT_API diopiError_t diopiRecordStart (const char * record_name,
187
211
void ** record) {
188
212
*record = new RecordBlockCreator (record_name);
You can’t perform that action at this time.
0 commit comments