I'm developing an application that makes use of a WebView. When resuming the app I occasionally run into an issue where the application just shows as a blank page. In the Console.app I see a stack trace, however the details are hidden (see below).
The stack trace is thrown from JavaScriptCore.
default 13:37:07.029261+0200 outlinerrs_dioxus 1 0x1b80cd678 <private>
default 13:37:07.029360+0200 outlinerrs_dioxus 2 0x1b7d50e30 <private>
default 13:37:07.029369+0200 outlinerrs_dioxus 3 0x1047ec800 <private>
default 13:37:07.029539+0200 outlinerrs_dioxus 4 0x1b7d37924 <private>
default 13:37:07.029548+0200 outlinerrs_dioxus 5 0x1b8102a78 <private>
default 13:37:07.029789+0200 outlinerrs_dioxus 6 0x1b8100cb8 <private>
default 13:37:07.029834+0200 outlinerrs_dioxus 7 0x1b7ba7b0c <private>
default 13:37:07.029851+0200 outlinerrs_dioxus 8 0x1b879a520 <private>
default 13:37:07.029870+0200 outlinerrs_dioxus 9 0x1b817f204 <private>
default 13:37:07.030159+0200 outlinerrs_dioxus 10 0x1b76bfce8 <private>
default 13:37:07.030186+0200 outlinerrs_dioxus 11 0x1b76ad838 <private>
default 13:37:07.030245+0200 outlinerrs_dioxus 12 0x1b76bd76c <private>
default 13:37:07.030324+0200 outlinerrs_dioxus 13 0x1b22c827c <private>
default 13:37:07.030424+0200 outlinerrs_dioxus 14 0x1b22c8034 <private>
default 13:37:07.030461+0200 outlinerrs_dioxus 15 0x19d6df230 <private>
default 13:37:07.030514+0200 outlinerrs_dioxus 16 0x19d6df1a4 <private>
default 13:37:07.030584+0200 outlinerrs_dioxus 17 0x19d6bcc6c <private>
default 13:37:07.030592+0200 outlinerrs_dioxus 18 0x19d6928b0 <private>
default 13:37:07.030601+0200 outlinerrs_dioxus 19 0x19d691c44 <private>
default 13:37:07.030607+0200 outlinerrs_dioxus 20 0x23ca6e498 GSEventRunModal
default 13:37:07.030675+0200 outlinerrs_dioxus 21 0x1a300cddc <private>
default 13:37:07.031049+0200 outlinerrs_dioxus 22 0x1a2fb1b0c UIApplicationMain
default 13:37:07.031064+0200 outlinerrs_dioxus 23 0x104a76278 <private>
default 13:37:07.031070+0200 outlinerrs_dioxus 24 0x1047a0064 <private>
default 13:37:07.031254+0200 outlinerrs_dioxus 25 0x104781efc <private>
default 13:37:07.031343+0200 outlinerrs_dioxus 26 0x1047493e0 <private>
default 13:37:07.031352+0200 outlinerrs_dioxus 27 0x10477e1c8 <private>
default 13:37:07.031358+0200 outlinerrs_dioxus 28 0x1047a0184 <private>
default 13:37:07.031373+0200 outlinerrs_dioxus 29 0x1047a033c <private>
default 13:37:07.031409+0200 outlinerrs_dioxus 30 0x104733724 <private>
default 13:37:07.031451+0200 outlinerrs_dioxus 31 0x104464e98 <private>
I tried to create com.apple.WebKit.plist in /Library/Preferences/Logging/Subsystems with the following contents:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>DEFAULT-OPTIONS</key>
<dict>
<key>Enable-Private-Data</key>
<true/>
</dict>
</dict>
</plist>
Does anyone know how to reveal the hidden logs?
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hi everyone,
I'm developing an iOS app which uses a PyTorch GPT2 model converted to Core ML via the Python coremltools. When I use dynamic shapes (either via RangeDim or EnumeratedShapes using coremtools) I get HUGE memory spikes when creating the model instance, while I don't get them when I specify a specific shape.
Specifically, I have a single vector input with a specific length. below is the peak and sustained memory usage with different settings. The difference between just a fixed input and a dynamic input is really big and I can't explain why or what to do against it.
static (length 64): 15.5 MB
RangeDim (64 max length):227 MB peak then 22.8 MB
RangeDim (512 max length): 281 MB peak then 25.8 MB
enum (from 0 to 64 with step size 10): 328 MB peak then 24.7 MB
Code to produce reproduce:
import coremltools as ct
import torch
import os
from transformers import GPT2LMHeadModel, GPT2Config
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained(Path(model_folder))
# Create a module that just extracts the logits
class JustLogits(torch.nn.Module):
def __init__(self, model):
super().__init__()
self.model = model
def forward(self, input_ids):
return self.model(input_ids, return_dict=True).logits
def create_models_for(n_embd, n_layer, n_head, n_inner):
model_str = f"n_embd_{n_embd}_n_layer_{n_layer}_n_head_{n_head}_n_inner_{n_inner}"
model_out = f"models/gpt2_{model_str}.mlpackage"
configuration = GPT2Config(
vocab_size=tokenizer.vocab_size,
n_embd=n_embd,
n_layer=n_layer,
n_head=n_head,
n_inner=n_inner,
bos_token_id=tokenizer.bos_token_id,
eos_token_id=tokenizer.eos_token_id,
)
model = GPT2LMHeadModel(configuration)
model.init_weights()
model.eval()
logit_model = JustLogits(model)
logit_model.eval();
max_sequence_length = 64
all_input_ids = [torch.ones((seq_len,), dtype=torch.int32) for seq_len in [1, 64, max_sequence_length]]
out = model(all_input_ids[1], return_dict=True);
logit_model.eval()
traced_model = torch.jit.trace(logit_model, all_input_ids[-1])
from coremltools.converters.mil.mil import types
mlmodel = ct.convert(
traced_model,
convert_to="mlprogram",
minimum_deployment_target=ct.target.iOS15,
inputs=[ct.TensorType(shape=[64], name="input_ids", dtype=types.int32)],
outputs=[ct.TensorType(name="output_logits")]
)
mlmodel.save(model_out)
out = mlmodel.predict({"input_ids": all_input_ids[-1]})
for inference_max_len in [64, 512]:
mlmodel = ct.convert(
traced_model,
convert_to="mlprogram",
minimum_deployment_target=ct.target.iOS15,
inputs=[ct.TensorType(shape=[ct.RangeDim(1, inference_max_len, default=inference_max_len)], name="input_ids", dtype=types.int32)],
outputs=[ct.TensorType(name="output_logits")]
)
mlmodel.save(f"models/gpt2_{model_str}_dynamic_{inference_max_len}.mlpackage")
create_models_for(192, 1, 6, 4*192)