| 379 | |
| 380 | |
| 381 | def is_paddle_support_new_h2d(): |
| 382 | import subprocess |
| 383 | import sys |
| 384 | |
| 385 | global _support_new_h2d |
| 386 | if _support_new_h2d is not None: |
| 387 | return _support_new_h2d |
| 388 | |
| 389 | code = """ |
| 390 | import paddle |
| 391 | import resource |
| 392 | |
| 393 | resource.setrlimit(resource.RLIMIT_CORE, (0, 0)) |
| 394 | try: |
| 395 | dst = paddle.zeros([2, 4], dtype='bfloat16') |
| 396 | src = paddle.ones([2, 2], dtype='bfloat16', device='cpu') |
| 397 | dst = dst[..., :2] |
| 398 | dst.copy_(src) |
| 399 | print(1) |
| 400 | except: |
| 401 | print(0) |
| 402 | """ |
| 403 | result = subprocess.run([sys.executable, "-c", code], capture_output=True) |
| 404 | _support_new_h2d = result.stdout.strip() == b"1" |
| 405 | return _support_new_h2d |
| 406 | |
| 407 | |
| 408 | def h2d_copy(dst, src, blocking=True): |