-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhipify-perl
executable file
·2693 lines (2665 loc) · 160 KB
/
hipify-perl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#!/usr/bin/perl -w
##
# Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
##
# IMPORTANT: Do not change this file manually: it is generated by hipify-clang --perl
#usage hipify-perl [OPTIONS] INPUT_FILE
use Getopt::Long;
my $whitelist = "";
my $fileName = "";
my %ft;
my %Tkernels;
GetOptions(
"examine" => \$examine # Combines -no-output and -print-stats options.
, "inplace" => \$inplace # Modify input file inplace, replacing input with hipified output, save backup in .prehip file.
, "no-output" => \$no_output # Don't write any translated output to stdout.
, "print-stats" => \$print_stats # Print translation statistics.
, "quiet-warnings" => \$quiet_warnings # Don't print warnings on unknown CUDA functions.
, "whitelist=s" => \$whitelist # TODO: test it beforehand
);
$print_stats = 1 if $examine;
$no_output = 1 if $examine;
# Whitelist of cuda[A-Z] identifiers, which are commonly used in CUDA sources but don't map to any CUDA API:
@whitelist = (
"cudaCloverField"
, "cudaColorSpinorField"
, "cudaDevice"
, "cudaDeviceId"
, "cudaDevice_t"
, "cudaDevices"
, "cudaDimBlock"
, "cudaDimGrid"
, "cudaFatLink"
, "cudaGauge"
, "cudaGaugeField"
, "cudaGradInput"
, "cudaGradOutput"
, "cudaGridDim"
, "cudaIDs"
, "cudaInGauge"
, "cudaIndices"
, "cudaInput"
, "cudaMom"
, "cudaOutput"
, "cudaParam"
, "cudaSiteLink"
, "cudaStaple"
);
push(@whitelist, split(',', $whitelist));
@statNames = ("error", "init", "version", "device", "context", "module", "memory", "virtual_memory", "addressing", "stream", "event", "external_resource_interop", "stream_memory", "execution", "graph", "occupancy", "texture", "surface", "peer", "graphics", "profiler", "openGL", "D3D9", "D3D10", "D3D11", "VDPAU", "EGL", "thread", "complex", "library", "device_library", "device_function", "include", "include_cuda_main_header", "type", "literal", "numeric_literal", "define", "extern_shared", "kernel_launch");
sub totalStats {
my %count = %{ shift() };
my $total = 0;
foreach $key (keys %count) {
$total += $count{$key};
}
return $total;
};
sub printStats {
my $label = shift();
my @statNames = @{ shift() };
my %counts = %{ shift() };
my $warnings = shift();
my $loc = shift();
my $total = totalStats(\%counts);
printf STDERR "%s %d CUDA->HIP refs ( ", $label, $total;
foreach $stat (@statNames) {
printf STDERR "%s:%d ", $stat, $counts{$stat};
}
printf STDERR ")\n warn:%d LOC:%d", $warnings, $loc;
}
sub addStats {
my $dest_ref = shift();
my %adder = %{ shift() };
foreach $key (keys %adder) {
$dest_ref->{$key} += $adder{$key};
}
}
sub clearStats {
my $dest_ref = shift();
my @statNames = @{ shift() };
foreach $stat(@statNames) {
$dest_ref->{$stat} = 0;
}
}
sub simpleSubstitutions {
$ft{'error'} += s/\bcudaGetErrorName\b/hipGetErrorName/g;
$ft{'error'} += s/\bcudaGetErrorString\b/hipGetErrorString/g;
$ft{'error'} += s/\bcudaGetLastError\b/hipGetLastError/g;
$ft{'error'} += s/\bcudaPeekAtLastError\b/hipPeekAtLastError/g;
$ft{'init'} += s/\bcuInit\b/hipInit/g;
$ft{'version'} += s/\bcuDriverGetVersion\b/hipDriverGetVersion/g;
$ft{'version'} += s/\bcudaDriverGetVersion\b/hipDriverGetVersion/g;
$ft{'version'} += s/\bcudaRuntimeGetVersion\b/hipRuntimeGetVersion/g;
$ft{'device'} += s/\bcuDeviceComputeCapability\b/hipDeviceComputeCapability/g;
$ft{'device'} += s/\bcuDeviceGet\b/hipGetDevice/g;
$ft{'device'} += s/\bcuDeviceGetAttribute\b/hipDeviceGetAttribute/g;
$ft{'device'} += s/\bcuDeviceGetCount\b/hipGetDeviceCount/g;
$ft{'device'} += s/\bcuDeviceGetName\b/hipDeviceGetName/g;
$ft{'device'} += s/\bcuDeviceTotalMem\b/hipDeviceTotalMem/g;
$ft{'device'} += s/\bcuDeviceTotalMem_v2\b/hipDeviceTotalMem/g;
$ft{'device'} += s/\bcudaChooseDevice\b/hipChooseDevice/g;
$ft{'device'} += s/\bcudaDeviceGetAttribute\b/hipDeviceGetAttribute/g;
$ft{'device'} += s/\bcudaDeviceGetByPCIBusId\b/hipDeviceGetByPCIBusId/g;
$ft{'device'} += s/\bcudaDeviceGetCacheConfig\b/hipDeviceGetCacheConfig/g;
$ft{'device'} += s/\bcudaDeviceGetLimit\b/hipDeviceGetLimit/g;
$ft{'device'} += s/\bcudaDeviceGetPCIBusId\b/hipDeviceGetPCIBusId/g;
$ft{'device'} += s/\bcudaDeviceGetSharedMemConfig\b/hipDeviceGetSharedMemConfig/g;
$ft{'device'} += s/\bcudaDeviceGetStreamPriorityRange\b/hipDeviceGetStreamPriorityRange/g;
$ft{'device'} += s/\bcudaDeviceReset\b/hipDeviceReset/g;
$ft{'device'} += s/\bcudaDeviceSetCacheConfig\b/hipDeviceSetCacheConfig/g;
$ft{'device'} += s/\bcudaDeviceSetLimit\b/hipDeviceSetLimit/g;
$ft{'device'} += s/\bcudaDeviceSetSharedMemConfig\b/hipDeviceSetSharedMemConfig/g;
$ft{'device'} += s/\bcudaDeviceSynchronize\b/hipDeviceSynchronize/g;
$ft{'device'} += s/\bcudaFuncSetCacheConfig\b/hipFuncSetCacheConfig/g;
$ft{'device'} += s/\bcudaGetDevice\b/hipGetDevice/g;
$ft{'device'} += s/\bcudaGetDeviceCount\b/hipGetDeviceCount/g;
$ft{'device'} += s/\bcudaGetDeviceFlags\b/hipCtxGetFlags/g;
$ft{'device'} += s/\bcudaGetDeviceProperties\b/hipGetDeviceProperties/g;
$ft{'device'} += s/\bcudaIpcCloseMemHandle\b/hipIpcCloseMemHandle/g;
$ft{'device'} += s/\bcudaIpcGetEventHandle\b/hipIpcGetEventHandle/g;
$ft{'device'} += s/\bcudaIpcGetMemHandle\b/hipIpcGetMemHandle/g;
$ft{'device'} += s/\bcudaIpcOpenEventHandle\b/hipIpcOpenEventHandle/g;
$ft{'device'} += s/\bcudaIpcOpenMemHandle\b/hipIpcOpenMemHandle/g;
$ft{'device'} += s/\bcudaSetDevice\b/hipSetDevice/g;
$ft{'device'} += s/\bcudaSetDeviceFlags\b/hipSetDeviceFlags/g;
$ft{'context'} += s/\bcuCtxCreate\b/hipCtxCreate/g;
$ft{'context'} += s/\bcuCtxCreate_v2\b/hipCtxCreate/g;
$ft{'context'} += s/\bcuCtxDestroy\b/hipCtxDestroy/g;
$ft{'context'} += s/\bcuCtxDestroy_v2\b/hipCtxDestroy/g;
$ft{'context'} += s/\bcuCtxGetApiVersion\b/hipCtxGetApiVersion/g;
$ft{'context'} += s/\bcuCtxGetCacheConfig\b/hipCtxGetCacheConfig/g;
$ft{'context'} += s/\bcuCtxGetCurrent\b/hipCtxGetCurrent/g;
$ft{'context'} += s/\bcuCtxGetDevice\b/hipCtxGetDevice/g;
$ft{'context'} += s/\bcuCtxGetFlags\b/hipCtxGetFlags/g;
$ft{'context'} += s/\bcuCtxGetLimit\b/hipDeviceGetLimit/g;
$ft{'context'} += s/\bcuCtxGetSharedMemConfig\b/hipCtxGetSharedMemConfig/g;
$ft{'context'} += s/\bcuCtxGetStreamPriorityRange\b/hipDeviceGetStreamPriorityRange/g;
$ft{'context'} += s/\bcuCtxPopCurrent\b/hipCtxPopCurrent/g;
$ft{'context'} += s/\bcuCtxPopCurrent_v2\b/hipCtxPopCurrent/g;
$ft{'context'} += s/\bcuCtxPushCurrent\b/hipCtxPushCurrent/g;
$ft{'context'} += s/\bcuCtxPushCurrent_v2\b/hipCtxPushCurrent/g;
$ft{'context'} += s/\bcuCtxSetCacheConfig\b/hipCtxSetCacheConfig/g;
$ft{'context'} += s/\bcuCtxSetCurrent\b/hipCtxSetCurrent/g;
$ft{'context'} += s/\bcuCtxSetLimit\b/hipDeviceSetLimit/g;
$ft{'context'} += s/\bcuCtxSetSharedMemConfig\b/hipCtxSetSharedMemConfig/g;
$ft{'context'} += s/\bcuCtxSynchronize\b/hipCtxSynchronize/g;
$ft{'context'} += s/\bcuDevicePrimaryCtxGetState\b/hipDevicePrimaryCtxGetState/g;
$ft{'context'} += s/\bcuDevicePrimaryCtxRelease\b/hipDevicePrimaryCtxRelease/g;
$ft{'context'} += s/\bcuDevicePrimaryCtxReset\b/hipDevicePrimaryCtxReset/g;
$ft{'context'} += s/\bcuDevicePrimaryCtxRetain\b/hipDevicePrimaryCtxRetain/g;
$ft{'context'} += s/\bcuDevicePrimaryCtxSetFlags\b/hipDevicePrimaryCtxSetFlags/g;
$ft{'module'} += s/\bcuModuleGetFunction\b/hipModuleGetFunction/g;
$ft{'module'} += s/\bcuModuleGetGlobal\b/hipModuleGetGlobal/g;
$ft{'module'} += s/\bcuModuleGetGlobal_v2\b/hipModuleGetGlobal/g;
$ft{'module'} += s/\bcuModuleGetTexRef\b/hipModuleGetTexRef/g;
$ft{'module'} += s/\bcuModuleLoad\b/hipModuleLoad/g;
$ft{'module'} += s/\bcuModuleLoadData\b/hipModuleLoadData/g;
$ft{'module'} += s/\bcuModuleLoadDataEx\b/hipModuleLoadDataEx/g;
$ft{'module'} += s/\bcuModuleUnload\b/hipModuleUnload/g;
$ft{'memory'} += s/\bcuArray3DCreate\b/hipArray3DCreate/g;
$ft{'memory'} += s/\bcuArray3DCreate_v2\b/hipArray3DCreate/g;
$ft{'memory'} += s/\bcuArrayCreate\b/hipArrayCreate/g;
$ft{'memory'} += s/\bcuArrayCreate_v2\b/hipArrayCreate/g;
$ft{'memory'} += s/\bcuDeviceGetByPCIBusId\b/hipDeviceGetByPCIBusId/g;
$ft{'memory'} += s/\bcuDeviceGetPCIBusId\b/hipDeviceGetPCIBusId/g;
$ft{'memory'} += s/\bcuIpcCloseMemHandle\b/hipIpcCloseMemHandle/g;
$ft{'memory'} += s/\bcuIpcGetMemHandle\b/hipIpcGetMemHandle/g;
$ft{'memory'} += s/\bcuIpcOpenMemHandle\b/hipIpcOpenMemHandle/g;
$ft{'memory'} += s/\bcuMemAlloc\b/hipMalloc/g;
$ft{'memory'} += s/\bcuMemAllocHost\b/hipHostMalloc/g;
$ft{'memory'} += s/\bcuMemAllocHost_v2\b/hipHostMalloc/g;
$ft{'memory'} += s/\bcuMemAllocManaged\b/hipMallocManaged/g;
$ft{'memory'} += s/\bcuMemAllocPitch\b/hipMemAllocPitch/g;
$ft{'memory'} += s/\bcuMemAllocPitch_v2\b/hipMemAllocPitch/g;
$ft{'memory'} += s/\bcuMemAlloc_v2\b/hipMalloc/g;
$ft{'memory'} += s/\bcuMemFree\b/hipFree/g;
$ft{'memory'} += s/\bcuMemFreeHost\b/hipHostFree/g;
$ft{'memory'} += s/\bcuMemFree_v2\b/hipFree/g;
$ft{'memory'} += s/\bcuMemGetAddressRange\b/hipMemGetAddressRange/g;
$ft{'memory'} += s/\bcuMemGetAddressRange_v2\b/hipMemGetAddressRange/g;
$ft{'memory'} += s/\bcuMemGetInfo\b/hipMemGetInfo/g;
$ft{'memory'} += s/\bcuMemGetInfo_v2\b/hipMemGetInfo/g;
$ft{'memory'} += s/\bcuMemHostAlloc\b/hipHostMalloc/g;
$ft{'memory'} += s/\bcuMemHostGetDevicePointer\b/hipHostGetDevicePointer/g;
$ft{'memory'} += s/\bcuMemHostGetDevicePointer_v2\b/hipHostGetDevicePointer/g;
$ft{'memory'} += s/\bcuMemHostGetFlags\b/hipHostGetFlags/g;
$ft{'memory'} += s/\bcuMemHostRegister\b/hipHostRegister/g;
$ft{'memory'} += s/\bcuMemHostRegister_v2\b/hipHostRegister/g;
$ft{'memory'} += s/\bcuMemHostUnregister\b/hipHostUnregister/g;
$ft{'memory'} += s/\bcuMemcpy2D\b/hipMemcpyParam2D/g;
$ft{'memory'} += s/\bcuMemcpy2DAsync\b/hipMemcpyParam2DAsync/g;
$ft{'memory'} += s/\bcuMemcpy2DAsync_v2\b/hipMemcpyParam2DAsync/g;
$ft{'memory'} += s/\bcuMemcpy2D_v2\b/hipMemcpyParam2D/g;
$ft{'memory'} += s/\bcuMemcpy3D\b/hipDrvMemcpy3D/g;
$ft{'memory'} += s/\bcuMemcpy3DAsync\b/hipDrvMemcpy3DAsync/g;
$ft{'memory'} += s/\bcuMemcpy3D_v2\b/hipDrvMemcpy3D/g;
$ft{'memory'} += s/\bcuMemcpy3DAsync_v2\b/hipDrvMemcpy3DAsync/g;
$ft{'memory'} += s/\bcuMemcpyAtoH\b/hipMemcpyAtoH/g;
$ft{'memory'} += s/\bcuMemcpyAtoH_v2\b/hipMemcpyAtoH/g;
$ft{'memory'} += s/\bcuMemcpyDtoD\b/hipMemcpyDtoD/g;
$ft{'memory'} += s/\bcuMemcpyDtoDAsync\b/hipMemcpyDtoDAsync/g;
$ft{'memory'} += s/\bcuMemcpyDtoDAsync_v2\b/hipMemcpyDtoDAsync/g;
$ft{'memory'} += s/\bcuMemcpyDtoD_v2\b/hipMemcpyDtoD/g;
$ft{'memory'} += s/\bcuMemcpyDtoH\b/hipMemcpyDtoH/g;
$ft{'memory'} += s/\bcuMemcpyDtoHAsync\b/hipMemcpyDtoHAsync/g;
$ft{'memory'} += s/\bcuMemcpyDtoHAsync_v2\b/hipMemcpyDtoHAsync/g;
$ft{'memory'} += s/\bcuMemcpyDtoH_v2\b/hipMemcpyDtoH/g;
$ft{'memory'} += s/\bcuMemcpyHtoA\b/hipMemcpyHtoA/g;
$ft{'memory'} += s/\bcuMemcpyHtoA_v2\b/hipMemcpyHtoA/g;
$ft{'memory'} += s/\bcuMemcpyHtoD\b/hipMemcpyHtoD/g;
$ft{'memory'} += s/\bcuMemcpyHtoDAsync\b/hipMemcpyHtoDAsync/g;
$ft{'memory'} += s/\bcuMemcpyHtoDAsync_v2\b/hipMemcpyHtoDAsync/g;
$ft{'memory'} += s/\bcuMemcpyHtoD_v2\b/hipMemcpyHtoD/g;
$ft{'memory'} += s/\bcuMemsetD16\b/hipMemsetD16/g;
$ft{'memory'} += s/\bcuMemsetD16Async\b/hipMemsetD16Async/g;
$ft{'memory'} += s/\bcuMemsetD16_v2\b/hipMemsetD16/g;
$ft{'memory'} += s/\bcuMemsetD32\b/hipMemsetD32/g;
$ft{'memory'} += s/\bcuMemsetD32Async\b/hipMemsetD32Async/g;
$ft{'memory'} += s/\bcuMemsetD32_v2\b/hipMemsetD32/g;
$ft{'memory'} += s/\bcuMemsetD8\b/hipMemsetD8/g;
$ft{'memory'} += s/\bcuMemsetD8Async\b/hipMemsetD8Async/g;
$ft{'memory'} += s/\bcuMemsetD8_v2\b/hipMemsetD8/g;
$ft{'memory'} += s/\bcudaFree\b/hipFree/g;
$ft{'memory'} += s/\bcudaFreeArray\b/hipFreeArray/g;
$ft{'memory'} += s/\bcudaFreeHost\b/hipHostFree/g;
$ft{'memory'} += s/\bcudaGetSymbolAddress\b/hipGetSymbolAddress/g;
$ft{'memory'} += s/\bcudaGetSymbolSize\b/hipGetSymbolSize/g;
$ft{'memory'} += s/\bcudaHostAlloc\b/hipHostMalloc/g;
$ft{'memory'} += s/\bcudaHostGetDevicePointer\b/hipHostGetDevicePointer/g;
$ft{'memory'} += s/\bcudaHostGetFlags\b/hipHostGetFlags/g;
$ft{'memory'} += s/\bcudaHostRegister\b/hipHostRegister/g;
$ft{'memory'} += s/\bcudaHostUnregister\b/hipHostUnregister/g;
$ft{'memory'} += s/\bcudaMalloc\b/hipMalloc/g;
$ft{'memory'} += s/\bcudaMalloc3D\b/hipMalloc3D/g;
$ft{'memory'} += s/\bcudaMalloc3DArray\b/hipMalloc3DArray/g;
$ft{'memory'} += s/\bcudaMallocArray\b/hipMallocArray/g;
$ft{'memory'} += s/\bcudaMallocHost\b/hipHostMalloc/g;
$ft{'memory'} += s/\bcudaMallocManaged\b/hipMallocManaged/g;
$ft{'memory'} += s/\bcudaMallocPitch\b/hipMallocPitch/g;
$ft{'memory'} += s/\bcudaMemGetInfo\b/hipMemGetInfo/g;
$ft{'memory'} += s/\bcudaMemcpy\b/hipMemcpy/g;
$ft{'memory'} += s/\bcudaMemcpy2D\b/hipMemcpy2D/g;
$ft{'memory'} += s/\bcudaMemcpy2DAsync\b/hipMemcpy2DAsync/g;
$ft{'memory'} += s/\bcudaMemcpy2DFromArray\b/hipMemcpy2DFromArray/g;
$ft{'memory'} += s/\bcudaMemcpy2DFromArrayAsync\b/hipMemcpy2DFromArrayAsync/g;
$ft{'memory'} += s/\bcudaMemcpy2DToArray\b/hipMemcpy2DToArray/g;
$ft{'memory'} += s/\bcudaMemcpy3D\b/hipMemcpy3D/g;
$ft{'memory'} += s/\bcudaMemcpy3DAsync\b/hipMemcpy3DAsync/g;
$ft{'memory'} += s/\bcudaMemcpyAsync\b/hipMemcpyAsync/g;
$ft{'memory'} += s/\bcudaMemcpyFromArray\b/hipMemcpyFromArray/g;
$ft{'memory'} += s/\bcudaMemcpyFromSymbol\b/hipMemcpyFromSymbol/g;
$ft{'memory'} += s/\bcudaMemcpyFromSymbolAsync\b/hipMemcpyFromSymbolAsync/g;
$ft{'memory'} += s/\bcudaMemcpyPeer\b/hipMemcpyPeer/g;
$ft{'memory'} += s/\bcudaMemcpyPeerAsync\b/hipMemcpyPeerAsync/g;
$ft{'memory'} += s/\bcudaMemcpyToArray\b/hipMemcpyToArray/g;
$ft{'memory'} += s/\bcudaMemcpyToArrayAsync\b/hipMemcpyToArrayAsync/g;
$ft{'memory'} += s/\bcudaMemcpyToSymbol\b/hipMemcpyToSymbol/g;
$ft{'memory'} += s/\bcudaMemcpyToSymbolAsync\b/hipMemcpyToSymbolAsync/g;
$ft{'memory'} += s/\bcudaMemset\b/hipMemset/g;
$ft{'memory'} += s/\bcudaMemset2D\b/hipMemset2D/g;
$ft{'memory'} += s/\bcudaMemset2DAsync\b/hipMemset2DAsync/g;
$ft{'memory'} += s/\bcudaMemset3D\b/hipMemset3D/g;
$ft{'memory'} += s/\bcudaMemset3DAsync\b/hipMemset3DAsync/g;
$ft{'memory'} += s/\bcudaMemsetAsync\b/hipMemsetAsync/g;
$ft{'memory'} += s/\bmake_cudaExtent\b/make_hipExtent/g;
$ft{'memory'} += s/\bmake_cudaPitchedPtr\b/make_hipPitchedPtr/g;
$ft{'memory'} += s/\bmake_cudaPos\b/make_hipPos/g;
$ft{'addressing'} += s/\bcudaPointerGetAttributes\b/hipPointerGetAttributes/g;
$ft{'stream'} += s/\bcuStreamAddCallback\b/hipStreamAddCallback/g;
$ft{'stream'} += s/\bcuStreamCreate\b/hipStreamCreateWithFlags/g;
$ft{'stream'} += s/\bcuStreamCreateWithPriority\b/hipStreamCreateWithPriority/g;
$ft{'stream'} += s/\bcuStreamDestroy\b/hipStreamDestroy/g;
$ft{'stream'} += s/\bcuStreamDestroy_v2\b/hipStreamDestroy/g;
$ft{'stream'} += s/\bcuStreamGetFlags\b/hipStreamGetFlags/g;
$ft{'stream'} += s/\bcuStreamGetPriority\b/hipStreamGetPriority/g;
$ft{'stream'} += s/\bcuStreamQuery\b/hipStreamQuery/g;
$ft{'stream'} += s/\bcuStreamSynchronize\b/hipStreamSynchronize/g;
$ft{'stream'} += s/\bcuStreamWaitEvent\b/hipStreamWaitEvent/g;
$ft{'stream'} += s/\bcudaStreamAddCallback\b/hipStreamAddCallback/g;
$ft{'stream'} += s/\bcudaStreamCreate\b/hipStreamCreate/g;
$ft{'stream'} += s/\bcudaStreamCreateWithFlags\b/hipStreamCreateWithFlags/g;
$ft{'stream'} += s/\bcudaStreamCreateWithPriority\b/hipStreamCreateWithPriority/g;
$ft{'stream'} += s/\bcudaStreamDestroy\b/hipStreamDestroy/g;
$ft{'stream'} += s/\bcudaStreamGetFlags\b/hipStreamGetFlags/g;
$ft{'stream'} += s/\bcudaStreamGetPriority\b/hipStreamGetPriority/g;
$ft{'stream'} += s/\bcudaStreamQuery\b/hipStreamQuery/g;
$ft{'stream'} += s/\bcudaStreamSynchronize\b/hipStreamSynchronize/g;
$ft{'stream'} += s/\bcudaStreamWaitEvent\b/hipStreamWaitEvent/g;
$ft{'event'} += s/\bcuEventCreate\b/hipEventCreateWithFlags/g;
$ft{'event'} += s/\bcuEventDestroy\b/hipEventDestroy/g;
$ft{'event'} += s/\bcuEventDestroy_v2\b/hipEventDestroy/g;
$ft{'event'} += s/\bcuEventElapsedTime\b/hipEventElapsedTime/g;
$ft{'event'} += s/\bcuEventQuery\b/hipEventQuery/g;
$ft{'event'} += s/\bcuEventRecord\b/hipEventRecord/g;
$ft{'event'} += s/\bcuEventSynchronize\b/hipEventSynchronize/g;
$ft{'event'} += s/\bcudaEventCreate\b/hipEventCreate/g;
$ft{'event'} += s/\bcudaEventCreateWithFlags\b/hipEventCreateWithFlags/g;
$ft{'event'} += s/\bcudaEventDestroy\b/hipEventDestroy/g;
$ft{'event'} += s/\bcudaEventElapsedTime\b/hipEventElapsedTime/g;
$ft{'event'} += s/\bcudaEventQuery\b/hipEventQuery/g;
$ft{'event'} += s/\bcudaEventRecord\b/hipEventRecord/g;
$ft{'event'} += s/\bcudaEventSynchronize\b/hipEventSynchronize/g;
$ft{'execution'} += s/\bcuFuncGetAttribute\b/hipFuncGetAttribute/g;
$ft{'execution'} += s/\bcuLaunchKernel\b/hipModuleLaunchKernel/g;
$ft{'execution'} += s/\bcudaConfigureCall\b/hipConfigureCall/g;
$ft{'execution'} += s/\bcudaFuncGetAttributes\b/hipFuncGetAttributes/g;
$ft{'execution'} += s/\bcudaLaunch\b/hipLaunchByPtr/g;
$ft{'execution'} += s/\bcudaLaunchCooperativeKernel\b/hipLaunchCooperativeKernel/g;
$ft{'execution'} += s/\bcudaLaunchCooperativeKernelMultiDevice\b/hipLaunchCooperativeKernelMultiDevice/g;
$ft{'execution'} += s/\bcudaLaunchKernel\b/hipLaunchKernel/g;
$ft{'execution'} += s/\bcudaSetupArgument\b/hipSetupArgument/g;
$ft{'occupancy'} += s/\bcuOccupancyMaxActiveBlocksPerMultiprocessor\b/hipDrvOccupancyMaxActiveBlocksPerMultiprocessor/g;
$ft{'occupancy'} += s/\bcuOccupancyMaxActiveBlocksPerMultiprocessorWithFlags\b/hipDrvOccupancyMaxActiveBlocksPerMultiprocessorWithFlags/g;
$ft{'occupancy'} += s/\bcuOccupancyMaxPotentialBlockSize\b/hipOccupancyMaxPotentialBlockSize/g;
$ft{'occupancy'} += s/\bcudaOccupancyMaxActiveBlocksPerMultiprocessor\b/hipOccupancyMaxActiveBlocksPerMultiprocessor/g;
$ft{'occupancy'} += s/\bcudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags\b/hipOccupancyMaxActiveBlocksPerMultiprocessorWithFlags/g;
$ft{'occupancy'} += s/\bcudaOccupancyMaxPotentialBlockSize\b/hipOccupancyMaxPotentialBlockSize/g;
$ft{'texture'} += s/\bcuTexRefGetAddress\b/hipTexRefGetAddress/g;
$ft{'texture'} += s/\bcuTexRefGetAddressMode\b/hipTexRefGetAddressMode/g;
$ft{'texture'} += s/\bcuTexRefGetAddress_v2\b/hipTexRefGetAddress/g;
$ft{'texture'} += s/\bcuTexRefGetArray\b/hipTexRefGetArray/g;
$ft{'texture'} += s/\bcuTexRefSetAddress\b/hipTexRefSetAddress/g;
$ft{'texture'} += s/\bcuTexRefSetAddress2D\b/hipTexRefSetAddress2D/g;
$ft{'texture'} += s/\bcuTexRefSetAddress2D_v2\b/hipTexRefSetAddress2D/g;
$ft{'texture'} += s/\bcuTexRefSetAddress2D_v3\b/hipTexRefSetAddress2D/g;
$ft{'texture'} += s/\bcuTexRefSetAddressMode\b/hipTexRefSetAddressMode/g;
$ft{'texture'} += s/\bcuTexRefSetAddress_v2\b/hipTexRefSetAddress/g;
$ft{'texture'} += s/\bcuTexRefSetArray\b/hipTexRefSetArray/g;
$ft{'texture'} += s/\bcuTexRefSetFilterMode\b/hipTexRefSetFilterMode/g;
$ft{'texture'} += s/\bcuTexRefSetFlags\b/hipTexRefSetFlags/g;
$ft{'texture'} += s/\bcuTexRefSetFormat\b/hipTexRefSetFormat/g;
$ft{'texture'} += s/\bcudaBindTexture\b/hipBindTexture/g;
$ft{'texture'} += s/\bcudaBindTexture2D\b/hipBindTexture2D/g;
$ft{'texture'} += s/\bcudaBindTextureToArray\b/hipBindTextureToArray/g;
$ft{'texture'} += s/\bcudaBindTextureToMipmappedArray\b/hipBindTextureToMipmappedArray/g;
$ft{'texture'} += s/\bcudaCreateChannelDesc\b/hipCreateChannelDesc/g;
$ft{'texture'} += s/\bcudaCreateTextureObject\b/hipCreateTextureObject/g;
$ft{'texture'} += s/\bcudaDestroyTextureObject\b/hipDestroyTextureObject/g;
$ft{'texture'} += s/\bcudaGetChannelDesc\b/hipGetChannelDesc/g;
$ft{'texture'} += s/\bcudaGetTextureAlignmentOffset\b/hipGetTextureAlignmentOffset/g;
$ft{'texture'} += s/\bcudaGetTextureObjectResourceDesc\b/hipGetTextureObjectResourceDesc/g;
$ft{'texture'} += s/\bcudaGetTextureObjectResourceViewDesc\b/hipGetTextureObjectResourceViewDesc/g;
$ft{'texture'} += s/\bcudaGetTextureReference\b/hipGetTextureReference/g;
$ft{'texture'} += s/\bcudaUnbindTexture\b/hipUnbindTexture/g;
$ft{'surface'} += s/\bcudaCreateSurfaceObject\b/hipCreateSurfaceObject/g;
$ft{'surface'} += s/\bcudaDestroySurfaceObject\b/hipDestroySurfaceObject/g;
$ft{'peer'} += s/\bcuCtxDisablePeerAccess\b/hipCtxDisablePeerAccess/g;
$ft{'peer'} += s/\bcuCtxEnablePeerAccess\b/hipCtxEnablePeerAccess/g;
$ft{'peer'} += s/\bcuDeviceCanAccessPeer\b/hipDeviceCanAccessPeer/g;
$ft{'peer'} += s/\bcudaDeviceCanAccessPeer\b/hipDeviceCanAccessPeer/g;
$ft{'peer'} += s/\bcudaDeviceDisablePeerAccess\b/hipDeviceDisablePeerAccess/g;
$ft{'peer'} += s/\bcudaDeviceEnablePeerAccess\b/hipDeviceEnablePeerAccess/g;
$ft{'profiler'} += s/\bcuProfilerStart\b/hipProfilerStart/g;
$ft{'profiler'} += s/\bcuProfilerStop\b/hipProfilerStop/g;
$ft{'profiler'} += s/\bcudaProfilerStart\b/hipProfilerStart/g;
$ft{'profiler'} += s/\bcudaProfilerStop\b/hipProfilerStop/g;
$ft{'thread'} += s/\bcudaThreadExit\b/hipDeviceReset/g;
$ft{'thread'} += s/\bcudaThreadGetCacheConfig\b/hipDeviceGetCacheConfig/g;
$ft{'thread'} += s/\bcudaThreadSetCacheConfig\b/hipDeviceSetCacheConfig/g;
$ft{'thread'} += s/\bcudaThreadSynchronize\b/hipDeviceSynchronize/g;
$ft{'complex'} += s/\bcuCabs\b/hipCabs/g;
$ft{'complex'} += s/\bcuCabsf\b/hipCabsf/g;
$ft{'complex'} += s/\bcuCadd\b/hipCadd/g;
$ft{'complex'} += s/\bcuCaddf\b/hipCaddf/g;
$ft{'complex'} += s/\bcuCdiv\b/hipCdiv/g;
$ft{'complex'} += s/\bcuCdivf\b/hipCdivf/g;
$ft{'complex'} += s/\bcuCfma\b/hipCfma/g;
$ft{'complex'} += s/\bcuCfmaf\b/hipCfmaf/g;
$ft{'complex'} += s/\bcuCimag\b/hipCimag/g;
$ft{'complex'} += s/\bcuCimagf\b/hipCimagf/g;
$ft{'complex'} += s/\bcuCmul\b/hipCmul/g;
$ft{'complex'} += s/\bcuCmulf\b/hipCmulf/g;
$ft{'complex'} += s/\bcuComplexDoubleToFloat\b/hipComplexDoubleToFloat/g;
$ft{'complex'} += s/\bcuComplexFloatToDouble\b/hipComplexFloatToDouble/g;
$ft{'complex'} += s/\bcuConj\b/hipConj/g;
$ft{'complex'} += s/\bcuConjf\b/hipConjf/g;
$ft{'complex'} += s/\bcuCreal\b/hipCreal/g;
$ft{'complex'} += s/\bcuCrealf\b/hipCrealf/g;
$ft{'complex'} += s/\bcuCsub\b/hipCsub/g;
$ft{'complex'} += s/\bcuCsubf\b/hipCsubf/g;
$ft{'complex'} += s/\bmake_cuComplex\b/make_hipComplex/g;
$ft{'complex'} += s/\bmake_cuDoubleComplex\b/make_hipDoubleComplex/g;
$ft{'complex'} += s/\bmake_cuFloatComplex\b/make_hipFloatComplex/g;
$ft{'library'} += s/\bcublasCaxpy\b/hipblasCaxpy/g;
$ft{'library'} += s/\bcublasCaxpy_v2\b/hipblasCaxpy/g;
$ft{'library'} += s/\bcublasCcopy\b/hipblasCcopy/g;
$ft{'library'} += s/\bcublasCcopy_v2\b/hipblasCcopy/g;
$ft{'library'} += s/\bcublasCdotc\b/hipblasCdotc/g;
$ft{'library'} += s/\bcublasCdotc_v2\b/hipblasCdotc/g;
$ft{'library'} += s/\bcublasCdotu\b/hipblasCdotu/g;
$ft{'library'} += s/\bcublasCdotu_v2\b/hipblasCdotu/g;
$ft{'library'} += s/\bcublasCgemm\b/hipblasCgemm/g;
$ft{'library'} += s/\bcublasCgemmBatched\b/hipblasCgemmBatched/g;
$ft{'library'} += s/\bcublasCgemmStridedBatched\b/hipblasCgemmStridedBatched/g;
$ft{'library'} += s/\bcublasCgemv\b/hipblasCgemv/g;
$ft{'library'} += s/\bcublasCgemv_v2\b/hipblasCgemv/g;
$ft{'library'} += s/\bcublasCreate\b/hipblasCreate/g;
$ft{'library'} += s/\bcublasCreate_v2\b/hipblasCreate/g;
$ft{'library'} += s/\bcublasCrot\b/hipblasCrot/g;
$ft{'library'} += s/\bcublasCrot_v2\b/hipblasCrot/g;
$ft{'library'} += s/\bcublasCrotg\b/hipblasCrotg/g;
$ft{'library'} += s/\bcublasCrotg_v2\b/hipblasCrotg/g;
$ft{'library'} += s/\bcublasCscal\b/hipblasCscal/g;
$ft{'library'} += s/\bcublasCscal_v2\b/hipblasCscal/g;
$ft{'library'} += s/\bcublasCsrot\b/hipblasCsrot/g;
$ft{'library'} += s/\bcublasCsrot_v2\b/hipblasCsrot/g;
$ft{'library'} += s/\bcublasCsscal\b/hipblasCsscal/g;
$ft{'library'} += s/\bcublasCsscal_v2\b/hipblasCsscal/g;
$ft{'library'} += s/\bcublasCswap\b/hipblasCswap/g;
$ft{'library'} += s/\bcublasCswap_v2\b/hipblasCswap/g;
$ft{'library'} += s/\bcublasDasum\b/hipblasDasum/g;
$ft{'library'} += s/\bcublasDasum_v2\b/hipblasDasum/g;
$ft{'library'} += s/\bcublasDaxpy\b/hipblasDaxpy/g;
$ft{'library'} += s/\bcublasDaxpy_v2\b/hipblasDaxpy/g;
$ft{'library'} += s/\bcublasDcopy\b/hipblasDcopy/g;
$ft{'library'} += s/\bcublasDcopy_v2\b/hipblasDcopy/g;
$ft{'library'} += s/\bcublasDdot\b/hipblasDdot/g;
$ft{'library'} += s/\bcublasDdot_v2\b/hipblasDdot/g;
$ft{'library'} += s/\bcublasDestroy\b/hipblasDestroy/g;
$ft{'library'} += s/\bcublasDestroy_v2\b/hipblasDestroy/g;
$ft{'library'} += s/\bcublasDgeam\b/hipblasDgeam/g;
$ft{'library'} += s/\bcublasDgemm\b/hipblasDgemm/g;
$ft{'library'} += s/\bcublasDgemmBatched\b/hipblasDgemmBatched/g;
$ft{'library'} += s/\bcublasDgemmStridedBatched\b/hipblasDgemmStridedBatched/g;
$ft{'library'} += s/\bcublasDgemm_v2\b/hipblasDgemm/g;
$ft{'library'} += s/\bcublasDgemv\b/hipblasDgemv/g;
$ft{'library'} += s/\bcublasDgemv_v2\b/hipblasDgemv/g;
$ft{'library'} += s/\bcublasDger\b/hipblasDger/g;
$ft{'library'} += s/\bcublasDger_v2\b/hipblasDger/g;
$ft{'library'} += s/\bcublasDnrm2\b/hipblasDnrm2/g;
$ft{'library'} += s/\bcublasDnrm2_v2\b/hipblasDnrm2/g;
$ft{'library'} += s/\bcublasDrot\b/hipblasDrot/g;
$ft{'library'} += s/\bcublasDrot_v2\b/hipblasDrot/g;
$ft{'library'} += s/\bcublasDrotg\b/hipblasDrotg/g;
$ft{'library'} += s/\bcublasDrotg_v2\b/hipblasDrotg/g;
$ft{'library'} += s/\bcublasDrotm\b/hipblasDrotm/g;
$ft{'library'} += s/\bcublasDrotm_v2\b/hipblasDrotm/g;
$ft{'library'} += s/\bcublasDrotmg\b/hipblasDrotmg/g;
$ft{'library'} += s/\bcublasDrotmg_v2\b/hipblasDrotmg/g;
$ft{'library'} += s/\bcublasDscal\b/hipblasDscal/g;
$ft{'library'} += s/\bcublasDscal_v2\b/hipblasDscal/g;
$ft{'library'} += s/\bcublasDswap\b/hipblasDswap/g;
$ft{'library'} += s/\bcublasDswap_v2\b/hipblasDswap/g;
$ft{'library'} += s/\bcublasDsyr\b/hipblasDsyr/g;
$ft{'library'} += s/\bcublasDsyr_v2\b/hipblasDsyr/g;
$ft{'library'} += s/\bcublasDtrsm\b/hipblasDtrsm/g;
$ft{'library'} += s/\bcublasDtrsm_v2\b/hipblasDtrsm/g;
$ft{'library'} += s/\bcublasDtrsv\b/hipblasDtrsv/g;
$ft{'library'} += s/\bcublasDtrsv_v2\b/hipblasDtrsv/g;
$ft{'library'} += s/\bcublasDzasum\b/hipblasDzasum/g;
$ft{'library'} += s/\bcublasDzasum_v2\b/hipblasDzasum/g;
$ft{'library'} += s/\bcublasDznrm2\b/hipblasDznrm2/g;
$ft{'library'} += s/\bcublasDznrm2_v2\b/hipblasDznrm2/g;
$ft{'library'} += s/\bcublasGemmEx\b/hipblasGemmEx/g;
$ft{'library'} += s/\bcublasGetMatrix\b/hipblasGetMatrix/g;
$ft{'library'} += s/\bcublasGetPointerMode\b/hipblasGetPointerMode/g;
$ft{'library'} += s/\bcublasGetPointerMode_v2\b/hipblasGetPointerMode/g;
$ft{'library'} += s/\bcublasGetStream\b/hipblasGetStream/g;
$ft{'library'} += s/\bcublasGetStream_v2\b/hipblasGetStream/g;
$ft{'library'} += s/\bcublasGetVector\b/hipblasGetVector/g;
$ft{'library'} += s/\bcublasHgemm\b/hipblasHgemm/g;
$ft{'library'} += s/\bcublasHgemmBatched\b/hipblasHgemmBatched/g;
$ft{'library'} += s/\bcublasHgemmStridedBatched\b/hipblasHgemmStridedBatched/g;
$ft{'library'} += s/\bcublasIcamax\b/hipblasIcamax/g;
$ft{'library'} += s/\bcublasIcamax_v2\b/hipblasIcamax/g;
$ft{'library'} += s/\bcublasIcamin\b/hipblasIcamin/g;
$ft{'library'} += s/\bcublasIcamin_v2\b/hipblasIcamin/g;
$ft{'library'} += s/\bcublasIdamax\b/hipblasIdamax/g;
$ft{'library'} += s/\bcublasIdamax_v2\b/hipblasIdamax/g;
$ft{'library'} += s/\bcublasIdamin\b/hipblasIdamin/g;
$ft{'library'} += s/\bcublasIdamin_v2\b/hipblasIdamin/g;
$ft{'library'} += s/\bcublasIsamax\b/hipblasIsamax/g;
$ft{'library'} += s/\bcublasIsamax_v2\b/hipblasIsamax/g;
$ft{'library'} += s/\bcublasIsamin\b/hipblasIsamin/g;
$ft{'library'} += s/\bcublasIsamin_v2\b/hipblasIsamin/g;
$ft{'library'} += s/\bcublasIzamax\b/hipblasIzamax/g;
$ft{'library'} += s/\bcublasIzamax_v2\b/hipblasIzamax/g;
$ft{'library'} += s/\bcublasIzamin\b/hipblasIzamin/g;
$ft{'library'} += s/\bcublasIzamin_v2\b/hipblasIzamin/g;
$ft{'library'} += s/\bcublasSasum\b/hipblasSasum/g;
$ft{'library'} += s/\bcublasSasum_v2\b/hipblasSasum/g;
$ft{'library'} += s/\bcublasSaxpy\b/hipblasSaxpy/g;
$ft{'library'} += s/\bcublasSaxpy_v2\b/hipblasSaxpy/g;
$ft{'library'} += s/\bcublasScasum\b/hipblasScasum/g;
$ft{'library'} += s/\bcublasScasum_v2\b/hipblasScasum/g;
$ft{'library'} += s/\bcublasScnrm2\b/hipblasScnrm2/g;
$ft{'library'} += s/\bcublasScnrm2_v2\b/hipblasScnrm2/g;
$ft{'library'} += s/\bcublasScopy\b/hipblasScopy/g;
$ft{'library'} += s/\bcublasScopy_v2\b/hipblasScopy/g;
$ft{'library'} += s/\bcublasSdot\b/hipblasSdot/g;
$ft{'library'} += s/\bcublasSdot_v2\b/hipblasSdot/g;
$ft{'library'} += s/\bcublasSetMatrix\b/hipblasSetMatrix/g;
$ft{'library'} += s/\bcublasSetPointerMode\b/hipblasSetPointerMode/g;
$ft{'library'} += s/\bcublasSetPointerMode_v2\b/hipblasSetPointerMode/g;
$ft{'library'} += s/\bcublasSetStream\b/hipblasSetStream/g;
$ft{'library'} += s/\bcublasSetStream_v2\b/hipblasSetStream/g;
$ft{'library'} += s/\bcublasSetVector\b/hipblasSetVector/g;
$ft{'library'} += s/\bcublasSgeam\b/hipblasSgeam/g;
$ft{'library'} += s/\bcublasSgemm\b/hipblasSgemm/g;
$ft{'library'} += s/\bcublasSgemmBatched\b/hipblasSgemmBatched/g;
$ft{'library'} += s/\bcublasSgemmStridedBatched\b/hipblasSgemmStridedBatched/g;
$ft{'library'} += s/\bcublasSgemm_v2\b/hipblasSgemm/g;
$ft{'library'} += s/\bcublasSgemv\b/hipblasSgemv/g;
$ft{'library'} += s/\bcublasSgemvBatched\b/hipblasSgemvBatched/g;
$ft{'library'} += s/\bcublasSgemv_v2\b/hipblasSgemv/g;
$ft{'library'} += s/\bcublasSger\b/hipblasSger/g;
$ft{'library'} += s/\bcublasSger_v2\b/hipblasSger/g;
$ft{'library'} += s/\bcublasSnrm2\b/hipblasSnrm2/g;
$ft{'library'} += s/\bcublasSnrm2_v2\b/hipblasSnrm2/g;
$ft{'library'} += s/\bcublasSrot\b/hipblasSrot/g;
$ft{'library'} += s/\bcublasSrot_v2\b/hipblasSrot/g;
$ft{'library'} += s/\bcublasSrotg\b/hipblasSrotg/g;
$ft{'library'} += s/\bcublasSrotg_v2\b/hipblasSrotg/g;
$ft{'library'} += s/\bcublasSrotm\b/hipblasSrotm/g;
$ft{'library'} += s/\bcublasSrotm_v2\b/hipblasSrotm/g;
$ft{'library'} += s/\bcublasSrotmg\b/hipblasSrotmg/g;
$ft{'library'} += s/\bcublasSrotmg_v2\b/hipblasSrotmg/g;
$ft{'library'} += s/\bcublasSscal\b/hipblasSscal/g;
$ft{'library'} += s/\bcublasSscal_v2\b/hipblasSscal/g;
$ft{'library'} += s/\bcublasSswap\b/hipblasSswap/g;
$ft{'library'} += s/\bcublasSswap_v2\b/hipblasSswap/g;
$ft{'library'} += s/\bcublasSsyr\b/hipblasSsyr/g;
$ft{'library'} += s/\bcublasSsyr_v2\b/hipblasSsyr/g;
$ft{'library'} += s/\bcublasStrsm\b/hipblasStrsm/g;
$ft{'library'} += s/\bcublasStrsm_v2\b/hipblasStrsm/g;
$ft{'library'} += s/\bcublasStrsv\b/hipblasStrsv/g;
$ft{'library'} += s/\bcublasStrsv_v2\b/hipblasStrsv/g;
$ft{'library'} += s/\bcublasZaxpy\b/hipblasZaxpy/g;
$ft{'library'} += s/\bcublasZaxpy_v2\b/hipblasZaxpy/g;
$ft{'library'} += s/\bcublasZcopy\b/hipblasZcopy/g;
$ft{'library'} += s/\bcublasZcopy_v2\b/hipblasZcopy/g;
$ft{'library'} += s/\bcublasZdotc\b/hipblasZdotc/g;
$ft{'library'} += s/\bcublasZdotc_v2\b/hipblasZdotc/g;
$ft{'library'} += s/\bcublasZdotu\b/hipblasZdotu/g;
$ft{'library'} += s/\bcublasZdotu_v2\b/hipblasZdotu/g;
$ft{'library'} += s/\bcublasZdrot\b/hipblasZdrot/g;
$ft{'library'} += s/\bcublasZdrot_v2\b/hipblasZdrot/g;
$ft{'library'} += s/\bcublasZdscal\b/hipblasZdscal/g;
$ft{'library'} += s/\bcublasZdscal_v2\b/hipblasZdscal/g;
$ft{'library'} += s/\bcublasZgemm\b/hipblasZgemm/g;
$ft{'library'} += s/\bcublasZgemmBatched\b/hipblasZgemmBatched/g;
$ft{'library'} += s/\bcublasZgemmStridedBatched\b/hipblasZgemmStridedBatched/g;
$ft{'library'} += s/\bcublasZgemm_v2\b/hipblasZgemm/g;
$ft{'library'} += s/\bcublasZgemv\b/hipblasZgemv/g;
$ft{'library'} += s/\bcublasZgemv_v2\b/hipblasZgemv/g;
$ft{'library'} += s/\bcublasZrot\b/hipblasZrot/g;
$ft{'library'} += s/\bcublasZrot_v2\b/hipblasZrot/g;
$ft{'library'} += s/\bcublasZrotg\b/hipblasZrotg/g;
$ft{'library'} += s/\bcublasZrotg_v2\b/hipblasZrotg/g;
$ft{'library'} += s/\bcublasZscal\b/hipblasZscal/g;
$ft{'library'} += s/\bcublasZscal_v2\b/hipblasZscal/g;
$ft{'library'} += s/\bcublasZswap\b/hipblasZswap/g;
$ft{'library'} += s/\bcublasZswap_v2\b/hipblasZswap/g;
$ft{'library'} += s/\bcuda_stream\b/hip_stream/g;
$ft{'library'} += s/\bcudnnActivationBackward\b/hipdnnActivationBackward/g;
$ft{'library'} += s/\bcudnnActivationForward\b/hipdnnActivationForward/g;
$ft{'library'} += s/\bcudnnAddTensor\b/hipdnnAddTensor/g;
$ft{'library'} += s/\bcudnnBatchNormalizationBackward\b/hipdnnBatchNormalizationBackward/g;
$ft{'library'} += s/\bcudnnBatchNormalizationForwardInference\b/hipdnnBatchNormalizationForwardInference/g;
$ft{'library'} += s/\bcudnnBatchNormalizationForwardTraining\b/hipdnnBatchNormalizationForwardTraining/g;
$ft{'library'} += s/\bcudnnConvolutionBackwardBias\b/hipdnnConvolutionBackwardBias/g;
$ft{'library'} += s/\bcudnnConvolutionBackwardData\b/hipdnnConvolutionBackwardData/g;
$ft{'library'} += s/\bcudnnConvolutionBackwardFilter\b/hipdnnConvolutionBackwardFilter/g;
$ft{'library'} += s/\bcudnnConvolutionForward\b/hipdnnConvolutionForward/g;
$ft{'library'} += s/\bcudnnCreate\b/hipdnnCreate/g;
$ft{'library'} += s/\bcudnnCreateActivationDescriptor\b/hipdnnCreateActivationDescriptor/g;
$ft{'library'} += s/\bcudnnCreateConvolutionDescriptor\b/hipdnnCreateConvolutionDescriptor/g;
$ft{'library'} += s/\bcudnnCreateDropoutDescriptor\b/hipdnnCreateDropoutDescriptor/g;
$ft{'library'} += s/\bcudnnCreateFilterDescriptor\b/hipdnnCreateFilterDescriptor/g;
$ft{'library'} += s/\bcudnnCreateLRNDescriptor\b/hipdnnCreateLRNDescriptor/g;
$ft{'library'} += s/\bcudnnCreateOpTensorDescriptor\b/hipdnnCreateOpTensorDescriptor/g;
$ft{'library'} += s/\bcudnnCreatePersistentRNNPlan\b/hipdnnCreatePersistentRNNPlan/g;
$ft{'library'} += s/\bcudnnCreatePoolingDescriptor\b/hipdnnCreatePoolingDescriptor/g;
$ft{'library'} += s/\bcudnnCreateRNNDescriptor\b/hipdnnCreateRNNDescriptor/g;
$ft{'library'} += s/\bcudnnCreateReduceTensorDescriptor\b/hipdnnCreateReduceTensorDescriptor/g;
$ft{'library'} += s/\bcudnnCreateTensorDescriptor\b/hipdnnCreateTensorDescriptor/g;
$ft{'library'} += s/\bcudnnDeriveBNTensorDescriptor\b/hipdnnDeriveBNTensorDescriptor/g;
$ft{'library'} += s/\bcudnnDestroy\b/hipdnnDestroy/g;
$ft{'library'} += s/\bcudnnDestroyActivationDescriptor\b/hipdnnDestroyActivationDescriptor/g;
$ft{'library'} += s/\bcudnnDestroyConvolutionDescriptor\b/hipdnnDestroyConvolutionDescriptor/g;
$ft{'library'} += s/\bcudnnDestroyDropoutDescriptor\b/hipdnnDestroyDropoutDescriptor/g;
$ft{'library'} += s/\bcudnnDestroyFilterDescriptor\b/hipdnnDestroyFilterDescriptor/g;
$ft{'library'} += s/\bcudnnDestroyLRNDescriptor\b/hipdnnDestroyLRNDescriptor/g;
$ft{'library'} += s/\bcudnnDestroyOpTensorDescriptor\b/hipdnnDestroyOpTensorDescriptor/g;
$ft{'library'} += s/\bcudnnDestroyPersistentRNNPlan\b/hipdnnDestroyPersistentRNNPlan/g;
$ft{'library'} += s/\bcudnnDestroyPoolingDescriptor\b/hipdnnDestroyPoolingDescriptor/g;
$ft{'library'} += s/\bcudnnDestroyRNNDescriptor\b/hipdnnDestroyRNNDescriptor/g;
$ft{'library'} += s/\bcudnnDestroyReduceTensorDescriptor\b/hipdnnDestroyReduceTensorDescriptor/g;
$ft{'library'} += s/\bcudnnDestroyTensorDescriptor\b/hipdnnDestroyTensorDescriptor/g;
$ft{'library'} += s/\bcudnnDropoutGetStatesSize\b/hipdnnDropoutGetStatesSize/g;
$ft{'library'} += s/\bcudnnFindConvolutionBackwardDataAlgorithm\b/hipdnnFindConvolutionBackwardDataAlgorithm/g;
$ft{'library'} += s/\bcudnnFindConvolutionBackwardDataAlgorithmEx\b/hipdnnFindConvolutionBackwardDataAlgorithmEx/g;
$ft{'library'} += s/\bcudnnFindConvolutionBackwardFilterAlgorithm\b/hipdnnFindConvolutionBackwardFilterAlgorithm/g;
$ft{'library'} += s/\bcudnnFindConvolutionBackwardFilterAlgorithmEx\b/hipdnnFindConvolutionBackwardFilterAlgorithmEx/g;
$ft{'library'} += s/\bcudnnFindConvolutionForwardAlgorithm\b/hipdnnFindConvolutionForwardAlgorithm/g;
$ft{'library'} += s/\bcudnnFindConvolutionForwardAlgorithmEx\b/hipdnnFindConvolutionForwardAlgorithmEx/g;
$ft{'library'} += s/\bcudnnGetActivationDescriptor\b/hipdnnGetActivationDescriptor/g;
$ft{'library'} += s/\bcudnnGetConvolution2dDescriptor\b/hipdnnGetConvolution2dDescriptor/g;
$ft{'library'} += s/\bcudnnGetConvolution2dForwardOutputDim\b/hipdnnGetConvolution2dForwardOutputDim/g;
$ft{'library'} += s/\bcudnnGetConvolutionBackwardDataAlgorithm\b/hipdnnGetConvolutionBackwardDataAlgorithm/g;
$ft{'library'} += s/\bcudnnGetConvolutionBackwardDataWorkspaceSize\b/hipdnnGetConvolutionBackwardDataWorkspaceSize/g;
$ft{'library'} += s/\bcudnnGetConvolutionBackwardFilterAlgorithm\b/hipdnnGetConvolutionBackwardFilterAlgorithm/g;
$ft{'library'} += s/\bcudnnGetConvolutionBackwardFilterWorkspaceSize\b/hipdnnGetConvolutionBackwardFilterWorkspaceSize/g;
$ft{'library'} += s/\bcudnnGetConvolutionForwardAlgorithm\b/hipdnnGetConvolutionForwardAlgorithm/g;
$ft{'library'} += s/\bcudnnGetConvolutionForwardWorkspaceSize\b/hipdnnGetConvolutionForwardWorkspaceSize/g;
$ft{'library'} += s/\bcudnnGetErrorString\b/hipdnnGetErrorString/g;
$ft{'library'} += s/\bcudnnGetFilter4dDescriptor\b/hipdnnGetFilter4dDescriptor/g;
$ft{'library'} += s/\bcudnnGetFilterNdDescriptor\b/hipdnnGetFilterNdDescriptor/g;
$ft{'library'} += s/\bcudnnGetLRNDescriptor\b/hipdnnGetLRNDescriptor/g;
$ft{'library'} += s/\bcudnnGetOpTensorDescriptor\b/hipdnnGetOpTensorDescriptor/g;
$ft{'library'} += s/\bcudnnGetPooling2dDescriptor\b/hipdnnGetPooling2dDescriptor/g;
$ft{'library'} += s/\bcudnnGetPooling2dForwardOutputDim\b/hipdnnGetPooling2dForwardOutputDim/g;
$ft{'library'} += s/\bcudnnGetRNNDescriptor\b/hipdnnGetRNNDescriptor/g;
$ft{'library'} += s/\bcudnnGetRNNLinLayerBiasParams\b/hipdnnGetRNNLinLayerBiasParams/g;
$ft{'library'} += s/\bcudnnGetRNNLinLayerMatrixParams\b/hipdnnGetRNNLinLayerMatrixParams/g;
$ft{'library'} += s/\bcudnnGetRNNParamsSize\b/hipdnnGetRNNParamsSize/g;
$ft{'library'} += s/\bcudnnGetRNNTrainingReserveSize\b/hipdnnGetRNNTrainingReserveSize/g;
$ft{'library'} += s/\bcudnnGetRNNWorkspaceSize\b/hipdnnGetRNNWorkspaceSize/g;
$ft{'library'} += s/\bcudnnGetReduceTensorDescriptor\b/hipdnnGetReduceTensorDescriptor/g;
$ft{'library'} += s/\bcudnnGetReductionWorkspaceSize\b/hipdnnGetReductionWorkspaceSize/g;
$ft{'library'} += s/\bcudnnGetStream\b/hipdnnGetStream/g;
$ft{'library'} += s/\bcudnnGetTensor4dDescriptor\b/hipdnnGetTensor4dDescriptor/g;
$ft{'library'} += s/\bcudnnGetTensorNdDescriptor\b/hipdnnGetTensorNdDescriptor/g;
$ft{'library'} += s/\bcudnnGetVersion\b/hipdnnGetVersion/g;
$ft{'library'} += s/\bcudnnLRNCrossChannelBackward\b/hipdnnLRNCrossChannelBackward/g;
$ft{'library'} += s/\bcudnnLRNCrossChannelForward\b/hipdnnLRNCrossChannelForward/g;
$ft{'library'} += s/\bcudnnOpTensor\b/hipdnnOpTensor/g;
$ft{'library'} += s/\bcudnnPoolingBackward\b/hipdnnPoolingBackward/g;
$ft{'library'} += s/\bcudnnPoolingForward\b/hipdnnPoolingForward/g;
$ft{'library'} += s/\bcudnnRNNBackwardData\b/hipdnnRNNBackwardData/g;
$ft{'library'} += s/\bcudnnRNNBackwardWeights\b/hipdnnRNNBackwardWeights/g;
$ft{'library'} += s/\bcudnnRNNForwardInference\b/hipdnnRNNForwardInference/g;
$ft{'library'} += s/\bcudnnRNNForwardTraining\b/hipdnnRNNForwardTraining/g;
$ft{'library'} += s/\bcudnnReduceTensor\b/hipdnnReduceTensor/g;
$ft{'library'} += s/\bcudnnScaleTensor\b/hipdnnScaleTensor/g;
$ft{'library'} += s/\bcudnnSetActivationDescriptor\b/hipdnnSetActivationDescriptor/g;
$ft{'library'} += s/\bcudnnSetConvolution2dDescriptor\b/hipdnnSetConvolution2dDescriptor/g;
$ft{'library'} += s/\bcudnnSetConvolutionGroupCount\b/hipdnnSetConvolutionGroupCount/g;
$ft{'library'} += s/\bcudnnSetConvolutionMathType\b/hipdnnSetConvolutionMathType/g;
$ft{'library'} += s/\bcudnnSetConvolutionNdDescriptor\b/hipdnnSetConvolutionNdDescriptor/g;
$ft{'library'} += s/\bcudnnSetDropoutDescriptor\b/hipdnnSetDropoutDescriptor/g;
$ft{'library'} += s/\bcudnnSetFilter4dDescriptor\b/hipdnnSetFilter4dDescriptor/g;
$ft{'library'} += s/\bcudnnSetFilterNdDescriptor\b/hipdnnSetFilterNdDescriptor/g;
$ft{'library'} += s/\bcudnnSetLRNDescriptor\b/hipdnnSetLRNDescriptor/g;
$ft{'library'} += s/\bcudnnSetOpTensorDescriptor\b/hipdnnSetOpTensorDescriptor/g;
$ft{'library'} += s/\bcudnnSetPersistentRNNPlan\b/hipdnnSetPersistentRNNPlan/g;
$ft{'library'} += s/\bcudnnSetPooling2dDescriptor\b/hipdnnSetPooling2dDescriptor/g;
$ft{'library'} += s/\bcudnnSetPoolingNdDescriptor\b/hipdnnSetPoolingNdDescriptor/g;
$ft{'library'} += s/\bcudnnSetRNNDescriptor\b/hipdnnSetRNNDescriptor/g;
$ft{'library'} += s/\bcudnnSetRNNDescriptor_v5\b/hipdnnSetRNNDescriptor_v5/g;
$ft{'library'} += s/\bcudnnSetRNNDescriptor_v6\b/hipdnnSetRNNDescriptor_v6/g;
$ft{'library'} += s/\bcudnnSetReduceTensorDescriptor\b/hipdnnSetReduceTensorDescriptor/g;
$ft{'library'} += s/\bcudnnSetStream\b/hipdnnSetStream/g;
$ft{'library'} += s/\bcudnnSetTensor\b/hipdnnSetTensor/g;
$ft{'library'} += s/\bcudnnSetTensor4dDescriptor\b/hipdnnSetTensor4dDescriptor/g;
$ft{'library'} += s/\bcudnnSetTensor4dDescriptorEx\b/hipdnnSetTensor4dDescriptorEx/g;
$ft{'library'} += s/\bcudnnSetTensorNdDescriptor\b/hipdnnSetTensorNdDescriptor/g;
$ft{'library'} += s/\bcudnnSoftmaxBackward\b/hipdnnSoftmaxBackward/g;
$ft{'library'} += s/\bcudnnSoftmaxForward\b/hipdnnSoftmaxForward/g;
$ft{'library'} += s/\bcufftCreate\b/hipfftCreate/g;
$ft{'library'} += s/\bcufftDestroy\b/hipfftDestroy/g;
$ft{'library'} += s/\bcufftEstimate1d\b/hipfftEstimate1d/g;
$ft{'library'} += s/\bcufftEstimate2d\b/hipfftEstimate2d/g;
$ft{'library'} += s/\bcufftEstimate3d\b/hipfftEstimate3d/g;
$ft{'library'} += s/\bcufftEstimateMany\b/hipfftEstimateMany/g;
$ft{'library'} += s/\bcufftExecC2C\b/hipfftExecC2C/g;
$ft{'library'} += s/\bcufftExecC2R\b/hipfftExecC2R/g;
$ft{'library'} += s/\bcufftExecD2Z\b/hipfftExecD2Z/g;
$ft{'library'} += s/\bcufftExecR2C\b/hipfftExecR2C/g;
$ft{'library'} += s/\bcufftExecZ2D\b/hipfftExecZ2D/g;
$ft{'library'} += s/\bcufftExecZ2Z\b/hipfftExecZ2Z/g;
$ft{'library'} += s/\bcufftGetSize\b/hipfftGetSize/g;
$ft{'library'} += s/\bcufftGetSize1d\b/hipfftGetSize1d/g;
$ft{'library'} += s/\bcufftGetSize2d\b/hipfftGetSize2d/g;
$ft{'library'} += s/\bcufftGetSize3d\b/hipfftGetSize3d/g;
$ft{'library'} += s/\bcufftGetSizeMany\b/hipfftGetSizeMany/g;
$ft{'library'} += s/\bcufftGetSizeMany64\b/hipfftGetSizeMany64/g;
$ft{'library'} += s/\bcufftGetVersion\b/hipfftGetVersion/g;
$ft{'library'} += s/\bcufftMakePlan1d\b/hipfftMakePlan1d/g;
$ft{'library'} += s/\bcufftMakePlan2d\b/hipfftMakePlan2d/g;
$ft{'library'} += s/\bcufftMakePlan3d\b/hipfftMakePlan3d/g;
$ft{'library'} += s/\bcufftMakePlanMany\b/hipfftMakePlanMany/g;
$ft{'library'} += s/\bcufftMakePlanMany64\b/hipfftMakePlanMany64/g;
$ft{'library'} += s/\bcufftPlan1d\b/hipfftPlan1d/g;
$ft{'library'} += s/\bcufftPlan2d\b/hipfftPlan2d/g;
$ft{'library'} += s/\bcufftPlan3d\b/hipfftPlan3d/g;
$ft{'library'} += s/\bcufftPlanMany\b/hipfftPlanMany/g;
$ft{'library'} += s/\bcufftSetAutoAllocation\b/hipfftSetAutoAllocation/g;
$ft{'library'} += s/\bcufftSetStream\b/hipfftSetStream/g;
$ft{'library'} += s/\bcufftSetWorkArea\b/hipfftSetWorkArea/g;
$ft{'library'} += s/\bcurandCreateGenerator\b/hiprandCreateGenerator/g;
$ft{'library'} += s/\bcurandCreateGeneratorHost\b/hiprandCreateGeneratorHost/g;
$ft{'library'} += s/\bcurandCreatePoissonDistribution\b/hiprandCreatePoissonDistribution/g;
$ft{'library'} += s/\bcurandDestroyDistribution\b/hiprandDestroyDistribution/g;
$ft{'library'} += s/\bcurandDestroyGenerator\b/hiprandDestroyGenerator/g;
$ft{'library'} += s/\bcurandGenerate\b/hiprandGenerate/g;
$ft{'library'} += s/\bcurandGenerateLogNormal\b/hiprandGenerateLogNormal/g;
$ft{'library'} += s/\bcurandGenerateLogNormalDouble\b/hiprandGenerateLogNormalDouble/g;
$ft{'library'} += s/\bcurandGenerateNormal\b/hiprandGenerateNormal/g;
$ft{'library'} += s/\bcurandGenerateNormalDouble\b/hiprandGenerateNormalDouble/g;
$ft{'library'} += s/\bcurandGeneratePoisson\b/hiprandGeneratePoisson/g;
$ft{'library'} += s/\bcurandGenerateSeeds\b/hiprandGenerateSeeds/g;
$ft{'library'} += s/\bcurandGenerateUniform\b/hiprandGenerateUniform/g;
$ft{'library'} += s/\bcurandGenerateUniformDouble\b/hiprandGenerateUniformDouble/g;
$ft{'library'} += s/\bcurandGetVersion\b/hiprandGetVersion/g;
$ft{'library'} += s/\bcurandMakeMTGP32Constants\b/hiprandMakeMTGP32Constants/g;
$ft{'library'} += s/\bcurandMakeMTGP32KernelState\b/hiprandMakeMTGP32KernelState/g;
$ft{'library'} += s/\bcurandSetGeneratorOffset\b/hiprandSetGeneratorOffset/g;
$ft{'library'} += s/\bcurandSetPseudoRandomGeneratorSeed\b/hiprandSetPseudoRandomGeneratorSeed/g;
$ft{'library'} += s/\bcurandSetQuasiRandomGeneratorDimensions\b/hiprandSetQuasiRandomGeneratorDimensions/g;
$ft{'library'} += s/\bcurandSetStream\b/hiprandSetStream/g;
$ft{'library'} += s/\bcusparseCaxpyi\b/hipsparseCaxpyi/g;
$ft{'library'} += s/\bcusparseCbsrmv\b/hipsparseCbsrmv/g;
$ft{'library'} += s/\bcusparseCcsr2csc\b/hipsparseCcsr2csc/g;
$ft{'library'} += s/\bcusparseCcsr2hyb\b/hipsparseCcsr2hyb/g;
$ft{'library'} += s/\bcusparseCcsrgeam\b/hipsparseCcsrgeam/g;
$ft{'library'} += s/\bcusparseCcsrgeam2\b/hipsparseCcsrgeam2/g;
$ft{'library'} += s/\bcusparseCcsrgeam2_bufferSizeExt\b/hipsparseCcsrgeam2_bufferSizeExt/g;
$ft{'library'} += s/\bcusparseCcsrgemm\b/hipsparseCcsrgemm/g;
$ft{'library'} += s/\bcusparseCcsrgemm2\b/hipsparseCcsrgemm2/g;
$ft{'library'} += s/\bcusparseCcsrgemm2_bufferSizeExt\b/hipsparseCcsrgemm2_bufferSizeExt/g;
$ft{'library'} += s/\bcusparseCcsrilu02\b/hipsparseCcsrilu02/g;
$ft{'library'} += s/\bcusparseCcsrilu02_analysis\b/hipsparseCcsrilu02_analysis/g;
$ft{'library'} += s/\bcusparseCcsrilu02_bufferSize\b/hipsparseCcsrilu02_bufferSize/g;
$ft{'library'} += s/\bcusparseCcsrilu02_bufferSizeExt\b/hipsparseCcsrilu02_bufferSizeExt/g;
$ft{'library'} += s/\bcusparseCcsrmm\b/hipsparseCcsrmm/g;
$ft{'library'} += s/\bcusparseCcsrmm2\b/hipsparseCcsrmm2/g;
$ft{'library'} += s/\bcusparseCcsrmv\b/hipsparseCcsrmv/g;
$ft{'library'} += s/\bcusparseCcsrsm2_analysis\b/hipsparseCcsrsm2_analysis/g;
$ft{'library'} += s/\bcusparseCcsrsm2_bufferSizeExt\b/hipsparseCcsrsm2_bufferSizeExt/g;
$ft{'library'} += s/\bcusparseCcsrsm_solve\b/hipsparseCcsrsm_solve/g;
$ft{'library'} += s/\bcusparseCcsrsv2_analysis\b/hipsparseCcsrsv2_analysis/g;
$ft{'library'} += s/\bcusparseCcsrsv2_bufferSize\b/hipsparseCcsrsv2_bufferSize/g;
$ft{'library'} += s/\bcusparseCcsrsv2_bufferSizeExt\b/hipsparseCcsrsv2_bufferSizeExt/g;
$ft{'library'} += s/\bcusparseCcsrsv2_solve\b/hipsparseCcsrsv2_solve/g;
$ft{'library'} += s/\bcusparseCdotci\b/hipsparseCdotci/g;
$ft{'library'} += s/\bcusparseCdoti\b/hipsparseCdoti/g;
$ft{'library'} += s/\bcusparseCgthr\b/hipsparseCgthr/g;
$ft{'library'} += s/\bcusparseCgthrz\b/hipsparseCgthrz/g;
$ft{'library'} += s/\bcusparseChybmv\b/hipsparseChybmv/g;
$ft{'library'} += s/\bcusparseCnnz\b/hipsparseCnnz/g;
$ft{'library'} += s/\bcusparseCnnz_compress\b/hipsparseCnnz_compress/g;
$ft{'library'} += s/\bcusparseCreate\b/hipsparseCreate/g;
$ft{'library'} += s/\bcusparseCreateCsrgemm2Info\b/hipsparseCreateCsrgemm2Info/g;
$ft{'library'} += s/\bcusparseCreateCsrilu02Info\b/hipsparseCreateCsrilu02Info/g;
$ft{'library'} += s/\bcusparseCreateCsrsm2Info\b/hipsparseCreateCsrsm2Info/g;
$ft{'library'} += s/\bcusparseCreateCsrsv2Info\b/hipsparseCreateCsrsv2Info/g;
$ft{'library'} += s/\bcusparseCreateHybMat\b/hipsparseCreateHybMat/g;
$ft{'library'} += s/\bcusparseCreateIdentityPermutation\b/hipsparseCreateIdentityPermutation/g;
$ft{'library'} += s/\bcusparseCreateMatDescr\b/hipsparseCreateMatDescr/g;
$ft{'library'} += s/\bcusparseCsctr\b/hipsparseCsctr/g;
$ft{'library'} += s/\bcusparseDaxpyi\b/hipsparseDaxpyi/g;
$ft{'library'} += s/\bcusparseDbsrmv\b/hipsparseDbsrmv/g;
$ft{'library'} += s/\bcusparseDcsr2csc\b/hipsparseDcsr2csc/g;
$ft{'library'} += s/\bcusparseDcsr2hyb\b/hipsparseDcsr2hyb/g;
$ft{'library'} += s/\bcusparseDcsrgeam\b/hipsparseDcsrgeam/g;
$ft{'library'} += s/\bcusparseDcsrgeam2\b/hipsparseDcsrgeam2/g;
$ft{'library'} += s/\bcusparseDcsrgeam2_bufferSizeExt\b/hipsparseDcsrgeam2_bufferSizeExt/g;
$ft{'library'} += s/\bcusparseDcsrgemm\b/hipsparseDcsrgemm/g;
$ft{'library'} += s/\bcusparseDcsrgemm2\b/hipsparseDcsrgemm2/g;
$ft{'library'} += s/\bcusparseDcsrgemm2_bufferSizeExt\b/hipsparseDcsrgemm2_bufferSizeExt/g;
$ft{'library'} += s/\bcusparseDcsrilu02\b/hipsparseDcsrilu02/g;
$ft{'library'} += s/\bcusparseDcsrilu02_analysis\b/hipsparseDcsrilu02_analysis/g;
$ft{'library'} += s/\bcusparseDcsrilu02_bufferSize\b/hipsparseDcsrilu02_bufferSize/g;
$ft{'library'} += s/\bcusparseDcsrilu02_bufferSizeExt\b/hipsparseDcsrilu02_bufferSizeExt/g;
$ft{'library'} += s/\bcusparseDcsrmm\b/hipsparseDcsrmm/g;
$ft{'library'} += s/\bcusparseDcsrmm2\b/hipsparseDcsrmm2/g;
$ft{'library'} += s/\bcusparseDcsrmv\b/hipsparseDcsrmv/g;
$ft{'library'} += s/\bcusparseDcsrsm2_analysis\b/hipsparseDcsrsm2_analysis/g;
$ft{'library'} += s/\bcusparseDcsrsm2_bufferSizeExt\b/hipsparseDcsrsm2_bufferSizeExt/g;
$ft{'library'} += s/\bcusparseDcsrsm_solve\b/hipsparseDcsrsm_solve/g;
$ft{'library'} += s/\bcusparseDcsrsv2_analysis\b/hipsparseDcsrsv2_analysis/g;
$ft{'library'} += s/\bcusparseDcsrsv2_bufferSize\b/hipsparseDcsrsv2_bufferSize/g;
$ft{'library'} += s/\bcusparseDcsrsv2_bufferSizeExt\b/hipsparseDcsrsv2_bufferSizeExt/g;
$ft{'library'} += s/\bcusparseDcsrsv2_solve\b/hipsparseDcsrsv2_solve/g;
$ft{'library'} += s/\bcusparseDdoti\b/hipsparseDdoti/g;
$ft{'library'} += s/\bcusparseDestroy\b/hipsparseDestroy/g;
$ft{'library'} += s/\bcusparseDestroyCsrgemm2Info\b/hipsparseDestroyCsrgemm2Info/g;
$ft{'library'} += s/\bcusparseDestroyCsrilu02Info\b/hipsparseDestroyCsrilu02Info/g;
$ft{'library'} += s/\bcusparseDestroyCsrsm2Info\b/hipsparseDestroyCsrsm2Info/g;
$ft{'library'} += s/\bcusparseDestroyCsrsv2Info\b/hipsparseDestroyCsrsv2Info/g;
$ft{'library'} += s/\bcusparseDestroyHybMat\b/hipsparseDestroyHybMat/g;
$ft{'library'} += s/\bcusparseDestroyMatDescr\b/hipsparseDestroyMatDescr/g;
$ft{'library'} += s/\bcusparseDgthr\b/hipsparseDgthr/g;
$ft{'library'} += s/\bcusparseDgthrz\b/hipsparseDgthrz/g;
$ft{'library'} += s/\bcusparseDhybmv\b/hipsparseDhybmv/g;
$ft{'library'} += s/\bcusparseDnnz\b/hipsparseDnnz/g;
$ft{'library'} += s/\bcusparseDnnz_compress\b/hipsparseDnnz_compress/g;
$ft{'library'} += s/\bcusparseDroti\b/hipsparseDroti/g;
$ft{'library'} += s/\bcusparseDsctr\b/hipsparseDsctr/g;
$ft{'library'} += s/\bcusparseGetMatDiagType\b/hipsparseGetMatDiagType/g;
$ft{'library'} += s/\bcusparseGetMatFillMode\b/hipsparseGetMatFillMode/g;
$ft{'library'} += s/\bcusparseGetMatIndexBase\b/hipsparseGetMatIndexBase/g;
$ft{'library'} += s/\bcusparseGetMatType\b/hipsparseGetMatType/g;
$ft{'library'} += s/\bcusparseGetPointerMode\b/hipsparseGetPointerMode/g;
$ft{'library'} += s/\bcusparseGetStream\b/hipsparseGetStream/g;
$ft{'library'} += s/\bcusparseGetVersion\b/hipsparseGetVersion/g;
$ft{'library'} += s/\bcusparseSaxpyi\b/hipsparseSaxpyi/g;
$ft{'library'} += s/\bcusparseSbsrmv\b/hipsparseSbsrmv/g;
$ft{'library'} += s/\bcusparseScsr2csc\b/hipsparseScsr2csc/g;
$ft{'library'} += s/\bcusparseScsr2hyb\b/hipsparseScsr2hyb/g;
$ft{'library'} += s/\bcusparseScsrgeam\b/hipsparseScsrgeam/g;
$ft{'library'} += s/\bcusparseScsrgeam2\b/hipsparseScsrgeam2/g;
$ft{'library'} += s/\bcusparseScsrgeam2_bufferSizeExt\b/hipsparseScsrgeam2_bufferSizeExt/g;
$ft{'library'} += s/\bcusparseScsrgemm\b/hipsparseScsrgemm/g;
$ft{'library'} += s/\bcusparseScsrgemm2\b/hipsparseScsrgemm2/g;
$ft{'library'} += s/\bcusparseScsrgemm2_bufferSizeExt\b/hipsparseScsrgemm2_bufferSizeExt/g;
$ft{'library'} += s/\bcusparseScsrilu02\b/hipsparseScsrilu02/g;
$ft{'library'} += s/\bcusparseScsrilu02_analysis\b/hipsparseScsrilu02_analysis/g;
$ft{'library'} += s/\bcusparseScsrilu02_bufferSize\b/hipsparseScsrilu02_bufferSize/g;
$ft{'library'} += s/\bcusparseScsrilu02_bufferSizeExt\b/hipsparseScsrilu02_bufferSizeExt/g;
$ft{'library'} += s/\bcusparseScsrmm\b/hipsparseScsrmm/g;
$ft{'library'} += s/\bcusparseScsrmm2\b/hipsparseScsrmm2/g;
$ft{'library'} += s/\bcusparseScsrmv\b/hipsparseScsrmv/g;
$ft{'library'} += s/\bcusparseScsrsm2_analysis\b/hipsparseScsrsm2_analysis/g;
$ft{'library'} += s/\bcusparseScsrsm2_bufferSizeExt\b/hipsparseScsrsm2_bufferSizeExt/g;
$ft{'library'} += s/\bcusparseScsrsm_solve\b/hipsparseScsrsm_solve/g;
$ft{'library'} += s/\bcusparseScsrsv2_analysis\b/hipsparseScsrsv2_analysis/g;
$ft{'library'} += s/\bcusparseScsrsv2_bufferSize\b/hipsparseScsrsv2_bufferSize/g;
$ft{'library'} += s/\bcusparseScsrsv2_bufferSizeExt\b/hipsparseScsrsv2_bufferSizeExt/g;
$ft{'library'} += s/\bcusparseScsrsv2_solve\b/hipsparseScsrsv2_solve/g;
$ft{'library'} += s/\bcusparseSdoti\b/hipsparseSdoti/g;
$ft{'library'} += s/\bcusparseSetMatDiagType\b/hipsparseSetMatDiagType/g;
$ft{'library'} += s/\bcusparseSetMatFillMode\b/hipsparseSetMatFillMode/g;
$ft{'library'} += s/\bcusparseSetMatIndexBase\b/hipsparseSetMatIndexBase/g;
$ft{'library'} += s/\bcusparseSetMatType\b/hipsparseSetMatType/g;
$ft{'library'} += s/\bcusparseSetPointerMode\b/hipsparseSetPointerMode/g;
$ft{'library'} += s/\bcusparseSetStream\b/hipsparseSetStream/g;
$ft{'library'} += s/\bcusparseSgthr\b/hipsparseSgthr/g;
$ft{'library'} += s/\bcusparseSgthrz\b/hipsparseSgthrz/g;
$ft{'library'} += s/\bcusparseShybmv\b/hipsparseShybmv/g;
$ft{'library'} += s/\bcusparseSnnz\b/hipsparseSnnz/g;
$ft{'library'} += s/\bcusparseSnnz_compress\b/hipsparseSnnz_compress/g;
$ft{'library'} += s/\bcusparseSroti\b/hipsparseSroti/g;
$ft{'library'} += s/\bcusparseSsctr\b/hipsparseSsctr/g;
$ft{'library'} += s/\bcusparseXbsrilu02_zeroPivot\b/hipsparseXbsrilu02_zeroPivot/g;
$ft{'library'} += s/\bcusparseXcoo2csr\b/hipsparseXcoo2csr/g;
$ft{'library'} += s/\bcusparseXcoosortByColumn\b/hipsparseXcoosortByColumn/g;
$ft{'library'} += s/\bcusparseXcoosortByRow\b/hipsparseXcoosortByRow/g;
$ft{'library'} += s/\bcusparseXcoosort_bufferSizeExt\b/hipsparseXcoosort_bufferSizeExt/g;
$ft{'library'} += s/\bcusparseXcscsort\b/hipsparseXcscsort/g;
$ft{'library'} += s/\bcusparseXcscsort_bufferSizeExt\b/hipsparseXcscsort_bufferSizeExt/g;
$ft{'library'} += s/\bcusparseXcsr2coo\b/hipsparseXcsr2coo/g;
$ft{'library'} += s/\bcusparseXcsrgeam2Nnz\b/hipsparseXcsrgeam2Nnz/g;
$ft{'library'} += s/\bcusparseXcsrgeamNnz\b/hipsparseXcsrgeamNnz/g;
$ft{'library'} += s/\bcusparseXcsrgemm2Nnz\b/hipsparseXcsrgemm2Nnz/g;
$ft{'library'} += s/\bcusparseXcsrgemmNnz\b/hipsparseXcsrgemmNnz/g;
$ft{'library'} += s/\bcusparseXcsrilu02_zeroPivot\b/hipsparseXcsrilu02_zeroPivot/g;
$ft{'library'} += s/\bcusparseXcsrsm2_zeroPivot\b/hipsparseXcsrsm2_zeroPivot/g;
$ft{'library'} += s/\bcusparseXcsrsort\b/hipsparseXcsrsort/g;
$ft{'library'} += s/\bcusparseXcsrsort_bufferSizeExt\b/hipsparseXcsrsort_bufferSizeExt/g;
$ft{'library'} += s/\bcusparseXcsrsv2_zeroPivot\b/hipsparseXcsrsv2_zeroPivot/g;
$ft{'library'} += s/\bcusparseZaxpyi\b/hipsparseZaxpyi/g;
$ft{'library'} += s/\bcusparseZbsrmv\b/hipsparseZbsrmv/g;
$ft{'library'} += s/\bcusparseZcsr2csc\b/hipsparseZcsr2csc/g;
$ft{'library'} += s/\bcusparseZcsr2hyb\b/hipsparseZcsr2hyb/g;
$ft{'library'} += s/\bcusparseZcsrgeam\b/hipsparseZcsrgeam/g;
$ft{'library'} += s/\bcusparseZcsrgeam2\b/hipsparseZcsrgeam2/g;
$ft{'library'} += s/\bcusparseZcsrgeam2_bufferSizeExt\b/hipsparseZcsrgeam2_bufferSizeExt/g;
$ft{'library'} += s/\bcusparseZcsrgemm\b/hipsparseZcsrgemm/g;
$ft{'library'} += s/\bcusparseZcsrgemm2\b/hipsparseZcsrgemm2/g;
$ft{'library'} += s/\bcusparseZcsrgemm2_bufferSizeExt\b/hipsparseZcsrgemm2_bufferSizeExt/g;
$ft{'library'} += s/\bcusparseZcsrilu02\b/hipsparseZcsrilu02/g;
$ft{'library'} += s/\bcusparseZcsrilu02_analysis\b/hipsparseZcsrilu02_analysis/g;
$ft{'library'} += s/\bcusparseZcsrilu02_bufferSize\b/hipsparseZcsrilu02_bufferSize/g;
$ft{'library'} += s/\bcusparseZcsrilu02_bufferSizeExt\b/hipsparseZcsrilu02_bufferSizeExt/g;
$ft{'library'} += s/\bcusparseZcsrmm\b/hipsparseZcsrmm/g;
$ft{'library'} += s/\bcusparseZcsrmm2\b/hipsparseZcsrmm2/g;
$ft{'library'} += s/\bcusparseZcsrmv\b/hipsparseZcsrmv/g;
$ft{'library'} += s/\bcusparseZcsrsm2_analysis\b/hipsparseZcsrsm2_analysis/g;
$ft{'library'} += s/\bcusparseZcsrsm2_bufferSizeExt\b/hipsparseZcsrsm2_bufferSizeExt/g;
$ft{'library'} += s/\bcusparseZcsrsm_solve\b/hipsparseZcsrsm_solve/g;
$ft{'library'} += s/\bcusparseZcsrsv2_analysis\b/hipsparseZcsrsv2_analysis/g;
$ft{'library'} += s/\bcusparseZcsrsv2_bufferSize\b/hipsparseZcsrsv2_bufferSize/g;
$ft{'library'} += s/\bcusparseZcsrsv2_bufferSizeExt\b/hipsparseZcsrsv2_bufferSizeExt/g;
$ft{'library'} += s/\bcusparseZcsrsv2_solve\b/hipsparseZcsrsv2_solve/g;
$ft{'library'} += s/\bcusparseZdotci\b/hipsparseZdotci/g;
$ft{'library'} += s/\bcusparseZdoti\b/hipsparseZdoti/g;
$ft{'library'} += s/\bcusparseZgthr\b/hipsparseZgthr/g;
$ft{'library'} += s/\bcusparseZgthrz\b/hipsparseZgthrz/g;
$ft{'library'} += s/\bcusparseZhybmv\b/hipsparseZhybmv/g;
$ft{'library'} += s/\bcusparseZnnz\b/hipsparseZnnz/g;
$ft{'library'} += s/\bcusparseZnnz_compress\b/hipsparseZnnz_compress/g;
$ft{'library'} += s/\bcusparseZsctr\b/hipsparseZsctr/g;
$ft{'device_library'} += s/\bcurand\b/hiprand/g;
$ft{'device_library'} += s/\bcurand_discrete\b/hiprand_discrete/g;
$ft{'device_library'} += s/\bcurand_discrete4\b/hiprand_discrete4/g;
$ft{'device_library'} += s/\bcurand_init\b/hiprand_init/g;
$ft{'device_library'} += s/\bcurand_log_normal\b/hiprand_log_normal/g;
$ft{'device_library'} += s/\bcurand_log_normal2\b/hiprand_log_normal2/g;
$ft{'device_library'} += s/\bcurand_log_normal2_double\b/hiprand_log_normal2_double/g;
$ft{'device_library'} += s/\bcurand_log_normal4\b/hiprand_log_normal4/g;
$ft{'device_library'} += s/\bcurand_log_normal4_double\b/hiprand_log_normal4_double/g;
$ft{'device_library'} += s/\bcurand_log_normal_double\b/hiprand_log_normal_double/g;
$ft{'device_library'} += s/\bcurand_normal\b/hiprand_normal/g;
$ft{'device_library'} += s/\bcurand_normal2\b/hiprand_normal2/g;
$ft{'device_library'} += s/\bcurand_normal2_double\b/hiprand_normal2_double/g;
$ft{'device_library'} += s/\bcurand_normal4\b/hiprand_normal4/g;
$ft{'device_library'} += s/\bcurand_normal4_double\b/hiprand_normal4_double/g;
$ft{'device_library'} += s/\bcurand_normal_double\b/hiprand_normal_double/g;
$ft{'device_library'} += s/\bcurand_poisson\b/hiprand_poisson/g;
$ft{'device_library'} += s/\bcurand_poisson4\b/hiprand_poisson4/g;
$ft{'device_library'} += s/\bcurand_uniform\b/hiprand_uniform/g;
$ft{'device_library'} += s/\bcurand_uniform2_double\b/hiprand_uniform2_double/g;
$ft{'device_library'} += s/\bcurand_uniform4\b/hiprand_uniform4/g;
$ft{'device_library'} += s/\bcurand_uniform4_double\b/hiprand_uniform4_double/g;
$ft{'device_library'} += s/\bcurand_uniform_double\b/hiprand_uniform_double/g;
$ft{'include'} += s/\bcaffe2\/core\/common_cudnn.h\b/caffe2\/core\/hip\/common_miopen.h/g;
$ft{'include'} += s/\bcaffe2\/operators\/spatial_batch_norm_op.h\b/caffe2\/operators\/hip\/spatial_batch_norm_op_miopen.hip/g;
$ft{'include'} += s/\bchannel_descriptor.h\b/hip\/channel_descriptor.h/g;
$ft{'include'} += s/\bcooperative_groups.h\b/hip\/hip_cooperative_groups.h/g;
$ft{'include'} += s/\bcuda_fp16.h\b/hip\/hip_fp16.h/g;
$ft{'include'} += s/\bcuda_profiler_api.h\b/hip\/hip_profile.h/g;
$ft{'include'} += s/\bcuda_runtime_api.h\b/hip\/hip_runtime_api.h/g;
$ft{'include'} += s/\bcuda_texture_types.h\b/hip\/hip_texture_types.h/g;
$ft{'include'} += s/\bcurand_discrete.h\b/hiprand_kernel.h/g;
$ft{'include'} += s/\bcurand_discrete2.h\b/hiprand_kernel.h/g;
$ft{'include'} += s/\bcurand_globals.h\b/hiprand_kernel.h/g;
$ft{'include'} += s/\bcurand_kernel.h\b/hiprand_kernel.h/g;
$ft{'include'} += s/\bcurand_lognormal.h\b/hiprand_kernel.h/g;
$ft{'include'} += s/\bcurand_mrg32k3a.h\b/hiprand_kernel.h/g;
$ft{'include'} += s/\bcurand_mtgp32.h\b/hiprand_kernel.h/g;
$ft{'include'} += s/\bcurand_mtgp32_host.h\b/hiprand_mtgp32_host.h/g;
$ft{'include'} += s/\bcurand_mtgp32_kernel.h\b/hiprand_kernel.h/g;
$ft{'include'} += s/\bcurand_mtgp32dc_p_11213.h\b/rocrand_mtgp32_11213.h/g;
$ft{'include'} += s/\bcurand_normal.h\b/hiprand_kernel.h/g;
$ft{'include'} += s/\bcurand_normal_static.h\b/hiprand_kernel.h/g;
$ft{'include'} += s/\bcurand_philox4x32_x.h\b/hiprand_kernel.h/g;
$ft{'include'} += s/\bcurand_poisson.h\b/hiprand_kernel.h/g;
$ft{'include'} += s/\bcurand_precalc.h\b/hiprand_kernel.h/g;
$ft{'include'} += s/\bcurand_uniform.h\b/hiprand_kernel.h/g;
$ft{'include'} += s/\bdevice_functions.h\b/hip\/device_functions.h/g;
$ft{'include'} += s/\bdriver_types.h\b/hip\/driver_types.h/g;
$ft{'include'} += s/\btexture_fetch_functions.h\b//g;
$ft{'include'} += s/\bvector_types.h\b/hip\/hip_vector_types.h/g;
$ft{'include_cuda_main_header'} += s/\bcuComplex.h\b/hip\/hip_complex.h/g;
$ft{'include_cuda_main_header'} += s/\bcub\/cub.cuh\b/hipcub\/hipcub.hpp/g;
$ft{'include_cuda_main_header'} += s/\bcublas.h\b/hipblas.h/g;
$ft{'include_cuda_main_header'} += s/\bcublas_v2.h\b/hipblas.h/g;
$ft{'include_cuda_main_header'} += s/\bcuda.h\b/hip\/hip_runtime.h/g;
$ft{'include_cuda_main_header'} += s/\bcuda_runtime.h\b/hip\/hip_runtime.h/g;
$ft{'include_cuda_main_header'} += s/\bcudnn.h\b/hipDNN.h/g;
$ft{'include_cuda_main_header'} += s/\bcufft.h\b/hipfft.h/g;
$ft{'include_cuda_main_header'} += s/\bcurand.h\b/hiprand.h/g;
$ft{'include_cuda_main_header'} += s/\bcusparse.h\b/hipsparse.h/g;
$ft{'include_cuda_main_header'} += s/\bcusparse_v2.h\b/hipsparse.h/g;
$ft{'type'} += s/\bCUDAContext\b/HIPContext/g;
$ft{'type'} += s/\bCUDA_ARRAY3D_DESCRIPTOR\b/HIP_ARRAY3D_DESCRIPTOR/g;
$ft{'type'} += s/\bCUDA_ARRAY3D_DESCRIPTOR_st\b/HIP_ARRAY3D_DESCRIPTOR/g;
$ft{'type'} += s/\bCUDA_ARRAY_DESCRIPTOR\b/HIP_ARRAY_DESCRIPTOR/g;
$ft{'type'} += s/\bCUDA_ARRAY_DESCRIPTOR_st\b/HIP_ARRAY_DESCRIPTOR/g;
$ft{'type'} += s/\bCUDA_MEMCPY2D\b/hip_Memcpy2D/g;
$ft{'type'} += s/\bCUDA_MEMCPY2D_st\b/hip_Memcpy2D/g;
$ft{'type'} += s/\bCUDA_MEMCPY3D\b/HIP_MEMCPY3D/g;
$ft{'type'} += s/\bCUDA_MEMCPY3D_st\b/HIP_MEMCPY3D/g;
$ft{'type'} += s/\bCUaddress_mode\b/hipTextureAddressMode/g;
$ft{'type'} += s/\bCUaddress_mode_enum\b/hipTextureAddressMode/g;
$ft{'type'} += s/\bCUarray\b/hipArray */g;
$ft{'type'} += s/\bCUarray_format\b/hipArray_format/g;
$ft{'type'} += s/\bCUarray_format_enum\b/hipArray_format/g;
$ft{'type'} += s/\bCUarray_st\b/hipArray/g;
$ft{'type'} += s/\bCUcomputemode\b/hipComputeMode/g;
$ft{'type'} += s/\bCUcomputemode_enum\b/hipComputeMode/g;
$ft{'type'} += s/\bCUcontext\b/hipCtx_t/g;
$ft{'type'} += s/\bCUctx_st\b/ihipCtx_t/g;
$ft{'type'} += s/\bCUdevice\b/hipDevice_t/g;
$ft{'type'} += s/\bCUdevice_attribute\b/hipDeviceAttribute_t/g;
$ft{'type'} += s/\bCUdevice_attribute_enum\b/hipDeviceAttribute_t/g;