|
|
|
|
|
|
|
""" |
|
Script to upload GPU diagnostics to Hugging Face Spaces with direct token input |
|
""" |
|
|
|
import os |
|
import sys |
|
from huggingface_hub import HfApi, create_repo, upload_file |
|
|
|
|
|
DEFAULT_REPO = "mknolan/gpu-diagnostic-test" |
|
|
|
DEFAULT_TOKEN = "" |
|
|
|
def main(): |
|
"""Main function to upload files to Hugging Face Spaces""" |
|
|
|
if DEFAULT_TOKEN: |
|
token = DEFAULT_TOKEN |
|
else: |
|
token = input("Enter your Hugging Face token (with WRITE access): ") |
|
|
|
|
|
repo_name = input("Enter repository name (default: {}): ".format(DEFAULT_REPO)) or DEFAULT_REPO |
|
|
|
print("Uploading to Space: {}".format(repo_name)) |
|
|
|
|
|
api = HfApi(token=token) |
|
|
|
try: |
|
|
|
try: |
|
repo = api.repo_info(repo_id=repo_name, repo_type="space") |
|
print("Repo {} ready".format(repo_name)) |
|
except Exception: |
|
print("Creating new Space: {}".format(repo_name)) |
|
create_repo( |
|
repo_id=repo_name, |
|
token=token, |
|
repo_type="space", |
|
space_sdk="gradio", |
|
private=False |
|
) |
|
|
|
print("Uploading diagnostic files to Hugging Face Space...") |
|
|
|
|
|
api.upload_file( |
|
path_or_fileobj="Dockerfile.gpu_test", |
|
path_in_repo="Dockerfile", |
|
repo_id=repo_name, |
|
repo_type="space", |
|
token=token, |
|
commit_message="Add Docker configuration for GPU diagnostics" |
|
) |
|
print("Uploaded Dockerfile") |
|
|
|
|
|
api.upload_file( |
|
path_or_fileobj="gpu_test.py", |
|
path_in_repo="app.py", |
|
repo_id=repo_name, |
|
repo_type="space", |
|
token=token, |
|
commit_message="Add GPU diagnostic script" |
|
) |
|
print("Uploaded gpu_test.py as app.py") |
|
|
|
|
|
readme_content = """# GPU Diagnostics Tool |
|
|
|
This Space provides diagnostics for GPU detection and functionality in Hugging Face Spaces. |
|
|
|
## Purpose |
|
- Tests if CUDA is available through PyTorch |
|
- Tests if nvidia-smi can detect the GPU |
|
- Tests tensor operations on GPU |
|
- Provides detailed diagnostic information about the GPU environment |
|
|
|
## How to Use |
|
1. Click the "Submit" button |
|
2. View the JSON results to diagnose GPU issues |
|
""" |
|
|
|
|
|
with open("temp_readme.md", "w") as f: |
|
f.write(readme_content) |
|
|
|
|
|
api.upload_file( |
|
path_or_fileobj="temp_readme.md", |
|
path_in_repo="README.md", |
|
repo_id=repo_name, |
|
repo_type="space", |
|
token=token, |
|
commit_message="Add README" |
|
) |
|
print("Uploaded README.md") |
|
|
|
|
|
os.remove("temp_readme.md") |
|
|
|
print("Upload completed!") |
|
print("Check your Space at: https://huggingface.co/spaces/{}".format(repo_name)) |
|
|
|
except Exception as e: |
|
print("Error: {}".format(e)) |
|
return 1 |
|
|
|
return 0 |
|
|
|
if __name__ == "__main__": |
|
sys.exit(main()) |